根据第一个 table 中的列在第二个 table 中插入新记录
Insert new records in second table based on colums in first table
我是 oracle.I 的新手,有两个表名称 "st" 和 "mt"。"skey" 是两个 tables.I 想要插入数据的公共列在 "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 command not properly ended"
如果您的查询背后的逻辑是正确的,您只需要正确的语法:
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')
而不是你的情况;但这只能说知道你的数据如何。
我是 oracle.I 的新手,有两个表名称 "st" 和 "mt"。"skey" 是两个 tables.I 想要插入数据的公共列在 "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 command not properly ended"
如果您的查询背后的逻辑是正确的,您只需要正确的语法:
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')
而不是你的情况;但这只能说知道你的数据如何。