为什么这会返回SQL命令没有正确结束?
问题描述:
为什么在查询下面返回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
答
假设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
答
突出显示的查询(粗体)仅返回一列,(斜体)的一部分,你需要添加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
裹'm_office_types'? – Blank
对于表别名,Oracle不支持“AS” – Aleksej
Thanks Forward和Aleksej。您的评论解决了这个问题。 – Himanshu