看來你試圖使用Sybase或T-SQL針對Oracle數據庫。數據庫之間的語法略有差異,特別是日期,字符串連字符和字符串解析。
那麼你是否正在尋找針對Oracle或其他數據庫的執行?如果oracle,下面應該是關閉的。
我不知道你所說的版本或者是什麼格式,你想要的日期是什麼意思,但是這似乎運行。我使用了(公用表表達式)來處理一些數據,以確保它在所有更改之後運行。
所以你的問題:
- 沒有這樣的東西作爲頂部,我們可以通過一個
rowNum < 101
限制;但應該使用順序 在Oracle
||
- 是運營商字符串連接不
+
你似乎認爲
convert(char(10),Version,101)
是一個日期,但除非版本與日期的領域,這是不是在預言真的......在哪種情況下可能需要to_date(version,'DD/MM/YYYY')
?
- 報價
"
用於現場符號很像[]
在T-SQL所以要建立一個動態的插入,我Concat的CHR(39)。
CAST(LEFT(error_num, 4) AS int)
是無效的,你需要使用substr(error_num, 1,4)
在Oracle
convert(char(10),adddate,101)
是Oracle無效也許你的意思是to_date(adddate,'MM/DD/YYYY')
。
with dcErrorBin(comp_nr, ssn_nr, version,plan_nr, error_num, error_txt,Addname,adddate) as
(Select 1,'603761193',(SELECT WM_CONCAT(BANNER) FROM V$VERSION),'Three','1234-hello','Error_txt','AddName',sysdate from dual)
SELECT
'Insert into KLG_TRN_SCE..dbBatchRequest values (' || chr(39)
|| comp_nr||Chr(39)
||','
|| chr(39)||ssn_nr||Chr(39)
||','
|| chr(39)||replace(Version,',','~~') || chr(39)
||','
|| chr(39)||plan_nr||Chr(39)
||',1'
||','
|| CAST(substr(error_num,1,4) AS int)
||','
|| chr(39)||error_txt||Chr(39)
||','
|| chr(39)||addname||chr(39)
||','
|| 'to_date('||chr(39)||adddate||chr(39)||','||chr(39)||'DD-MON-YY'||chr(39)||')'
||')'
FROM dcErrorBin
WHERE ssn_nr='603761193'
and rowNum <= 100
ORDER BY ADDDate Desc; --Perhaps order by add date desc so you get most recent errors?
導致:
Insert into KLG_TRN_SCE..dbBatchRequest values
('1'
, '603761193'
, 'Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
~~PL/SQL Release 11.2.0.4.0 - Production
~~CORE 11.2.0.4.0 Production
~~TNS for Linux: Version 11.2.0.4.0 - Production
~~NLSRTL Version 11.2.0.4.0 - Production'
, 'Three'
, 1
, 1234
, 'Error_txt'
, 'AddName'
, to_date('14-DEC-16','DD-MON-YY'))
的插入會報錯了,如果
- 我使用了錯誤的日期格式
- 沒有包裹在抽搐正確的價值觀
- error_num的前4個字符不是數字。
既不是'convert(char(10),Version,101)',也不是通過'+'或'KLG_TRN_SCE..dcErrorBin'連接是有效的Oracle語法。請參閱Oracle SQL文檔。 –
在Oracle手冊中,您發現'top 100'或'convert()'函數在哪裏?另外'KLG_TRN_SCE..dcErrorBin'是SQL中的無效標識符。 –
你得到的錯誤提示它不是oracle。請更改標籤 – Kacper