我是oracle的新手。我有两个表名称“ st”和“ mt”。“ skey”是两个表的公用列。我想在“ mt”中为“ st”的所有“ skey”值插入数据当“ st”中的列名“ tes”不等于“ NOO”时。
INSERT INTO SDATA.MT(RECNO,Skey,Date)
VALUES ((SELECT MAX(RECNO) FROM SDATA.ST)+1,'hari..',sysdate)
where skey in (select skey from SDATA.ST where tes <> 'NOO')
正在获取错误报告-SQL错误:ORA-00933:SQL命令未正确终止00933。00000-“ SQL命令未正确终止”
如果查询背后的逻辑正确,则仅需要正确的语法:
INSERT INTO SDATA.MT(
RECNO,
Skey,
Date
)
SELECT MAX(RECNO) + 1,
'hari..',
SYSDATE
FROM C_WOMEN_PRD.MOSTATUS
WHERE skey IN (SELECT skey
FROM SDATA.ST
WHERE tes <> 'NOO')
您需要VALUES关键字来插入固定值:
INSERT INTO SDATA.MT(
RECNO,
Skey,
Date
)
VALUES (1,
'something',
sysdate
);
根据表中的数据,也许您需要
WHERE skey NOT IN (SELECT skey
FROM SDATA.ST
WHERE tes = 'NOO')
而不是您的状况;但这只能说知道您的数据如何。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句