我是oracle的新手。我有两个名字" st"和" mt"。" skey"是两个表的公共列。我想在" mt"中插入数据。为所有" skey"值" st"除了列名" tes" in" st"不等于' 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 - &#34; SQL命令未正确结束&#34;
答案 0 :(得分:0)
如果您的查询背后的逻辑是正确的,您只需要正确的语法:
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')
而不是你的条件;但这只能说知道你的数据是怎样的。