看来你试图使用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