合并语句-ORA-01747上出现错误



我是oracle数据库的新手(一直在DB2和cobol上工作(。我有一个关于合并声明的问题。在Javascript中,我试图在OracleDB中的表中插入一行。如果插入失败,则计划进行更新。我在DB2中使用过Merge Statements,当选中时,oracle中的Merge SQL与我在DB 2中使用的类似。下面是我的合并声明。

合并到tbl1 O使用(从TBL_1中选择COL1、COL2、COL3,其中COL1=‘A’,COL2=‘B’,COL3=‘C’(MON(O.COL1=M.COL1和O.COL2=M.COL2和O.COL3=M.COL3(匹配后更新设置O.COL4="XYZ",O.COL5=123如果不匹配,则插入((O.COL1,O.COL2,O.COL3,O.COL4,O.COL5(值('A','B','C','XYZ',123((;

当我在sql开发工具中执行查询时,我收到一条错误消息SQL错误:ORA-01747:invalid.user.table.column,或列规范

感谢在这方面的任何帮助。感谢

我以前使用过merge语句,我唯一怀疑的是INSERT子句上多了一对parens。我还将从列列表中删除表别名。

列名也可能是错误的,但我无法根据给定的内容为您验证。

MERGE INTO TBL_1 O 
USING 
(SELECT COL1, 
COL2, 
COL3 FROM TBL_1 
WHERE COL1='A' 
AND COL2='B' 
AND COL3 = 'C') M 
ON (O.COL1 = M.COL1 AND O.COL2 = M.COL2 AND O.COL3=M.COL3) 
WHEN MATCHED THEN UPDATE 
SET O.COL4 = 'XYZ' 
,O.COL5 = 123 
WHEN NOT MATCHED THEN INSERT
(   COL1, 
COL2, 
COL3, 
COL4, 
COL5
) VALUES ('A','B','C','XYZ',123) ;

最新更新