Sql 如何解决尝试插入SELECT时缺少SELECT关键字的错误

Sql 如何解决尝试插入SELECT时缺少SELECT关键字的错误,sql,oracle,sql-insert,Sql,Oracle,Sql Insert,无论我如何写这条语句,我总是得到ORA-00928缺少select关键字错误 我试图将查询中的值插入表中。查询结果的列数与需要插入查询的表的列数相同。我试着把它做成CTE。即使是来自现有表的select查询也会返回相同的错误 代码如下: WITH FIRST_CTE(FrstCol1,FrstCol2) AS ( SELECT 't', '1' from dual UNION ALL SELECT 's', '2' from dual ) , SECOND_CTE(SndCol1,Sn

无论我如何写这条语句,我总是得到ORA-00928缺少select关键字错误

我试图将查询中的值插入表中。查询结果的列数与需要插入查询的表的列数相同。我试着把它做成CTE。即使是来自现有表的select查询也会返回相同的错误

代码如下:

WITH FIRST_CTE(FrstCol1,FrstCol2)
AS
(
  SELECT 't', '1' from dual UNION ALL
  SELECT 's', '2' from dual
)
,

SECOND_CTE(SndCol1,SndCol2)
AS
(
  SELECT 't', '3' from dual UNION ALL
  SELECT 'z', '4' from dual
)

INSERT INTO TABLE_1
SELECT *
from 
(SELECT * FROM FIRST_CTE) A
JOIN 
(SELECT * FROM SECOND_CTE) B
ON A.FrstCol1 = B.SndCol1
;

有什么建议吗

如果将
INSERT
部分放在开头,则不会出现问题,因为
SELECT
语句以
WITH
子句开头(对于本例)

前提是
表1
是创建为

create table TABLE_1(FrstCol1 varchar2(100),FrstCol2 varchar2(100),
                      SndCol1 varchar2(100), SndCol2 varchar2(100))

您问题中的代码看起来不错。表a中有多少列?您是将其键入工具还是脚本文件?如果是脚本文件,请检查行终止符(例如,在Linux上运行脚本时,您有CRLF行终止符)。是否确定表_a和表_b的名称不是保留字?这是实际的SQL语句,还是真实的SQL语句是复杂的?
create table TABLE_1(FrstCol1 varchar2(100),FrstCol2 varchar2(100),
                      SndCol1 varchar2(100), SndCol2 varchar2(100))