根据第一个 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')

而不是你的情况;但这只能说知道你的数据如何。