2016-11-24 90 views
-3

为什么在查询下面返回SQL错误:ORA-00933:SQL命令未正确结束。为什么这会返回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

裹'm_office_types'? – Blank

+3

对于表别名,Oracle不支持“AS” – Aleksej

+0

Thanks Forward和Aleksej。您的评论解决了这个问题。 – Himanshu

回答

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 
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),为

+0

也许m_office_types是一个变量。但是Oracle别名表不支持表别名的“AS” – Aleksej

相关问题