【发布时间】:2021-02-19 23:58:45
【问题描述】:
我创建了一个插入语句,在该插入语句中我想从另一个表的另一列中提取数据。我编写了以下脚本并收到错误。
我写了实际的 select 语句,它自己工作,这里是脚本:
SELECT job_id
FROM JOBS
WHERE job_id IN ('AD_CMMS')
当我尝试将 insert into 语句与 select 语句合并时出现问题,下面是包含 select 语句的完整脚本:
INSERT INTO Employees
VALUES (242, 'Anouar', 'seljouki', 'seljouki84@gmail.com', '0662777081', date19-May-12,
SELECT job_id FROM JOBS WHERE job_id IN ('AD_CMMS'),
16000, NULL, NULL, NULL);
当我运行上面的脚本时,我得到了这个错误:
从第 26 行开始的错误命令 -
插入员工 值(242,'Anouar','seljouki','seljouki84@gmail.com','0662777081',date19-May-12, SELECT job_id from JOBS where job_id in('AD_CMMS'),16000,NULL,NULL,Null)
命令行错误:28 列:1
错误报告 -
SQL 错误:ORA-00936:缺少表达式
00936. 00000 - “缺少表达式”
【问题讨论】:
-
你为什么还要麻烦引用第二个表?您从中提取的唯一列是 JOB_ID,并且您正在根据 JOB_ID 过滤该表。因此,您已经知道要插入的值,甚至无需从第二个表中进行选择。唯一真正的问题是,如果 JOBS 表中不存在 JOB_ID 的一个值,您想做什么?
标签: sql oracle subquery sql-insert