为什么这会返回SQL命令没有正确结束?

时间:2016-11-24 10:25:59

标签: sql oracle

为什么以下查询返回SQL错误:ORA-00933:SQL命令未正确结束。

INSERT INTO SYNC_MASTERS_TO_PS(
                           MASTER_CD,
                           LANG_CD,
                           TABLE_NAME,
                           PS_CD
                          )
SELECT 27542003,
       99,
       m_office_types,
       a.ps_cd
  FROM (SELECT DISTINCT PS_CD
          FROM M_POLICE_STATION
         WHERE STATE_CD = 27)
       AS a

2 个答案:

答案 0 :(得分:3)

假设m_office_types是您在某处定义的变量,则必须从表别名中删除AS

INSERT INTO SYNC_MASTERS_TO_PS(
                           MASTER_CD,
                           LANG_CD,
                           TABLE_NAME,
                           PS_CD
                          )
SELECT 27542003,
       99,
       m_office_types,
       a.ps_cd
  FROM (SELECT DISTINCT PS_CD
          FROM M_POLICE_STATION
         WHERE STATE_CD = 27)
       a

答案 1 :(得分:0)

突出显示的查询(粗体)只返回一列,并且您在查询(斜体)部分中提取多个列,您需要在查询中添加m_office_types输出(粗体)。

INSERT INTO SYNC_MASTERS_TO_PS(MASTER_CD,LANG_CD,TABLE_NAME,PS_CD) SELECT 27542003,99,m_office_types,a.ps_cd FROM( SELECT DISTINCT PS_CD FROM M_POLICE_STATION WHERE STATE_CD = 27 )作为