执行SELECT INTO语句提示command not properly ended如何修复
报错原因
你使用的是Oracle数据库,SELECT ... INTO ... FROM 批量插入已存在表的语法并非Oracle支持的语法,该语法仅适用于SQL Server等其他数据库,因此触发语法错误command not properly ended。
Oracle中的SELECT INTO仅用于PL/SQL块中将单行查询结果赋值给变量,不支持直接用来批量插入数据到已存在的表。
修复方案
按目标表是否存在选择对应写法:
- 若目标表
NMANDEV.EMANADM.UCFM_JOB_INSTANCE_DATA_LOG已经提前创建,只需同步源表数据,使用INSERT INTO ... SELECT语法:
INSERT INTO NMANDEV.EMANADM.UCFM_JOB_INSTANCE_DATA_LOG SELECT * FROM NMANSTG.EMANADM.UCFM_JOB_INSTANCE_DATA_LOG;
注意:需保证两个表的字段数量、顺序、数据类型完全匹配,若存在差异请显式指定两边的对应字段列表,避免插入出错。
- 若目标表还未创建,需要同时完成建表和数据同步,使用
CREATE TABLE ... AS SELECT语法:
CREATE TABLE NMANDEV.EMANADM.UCFM_JOB_INSTANCE_DATA_LOG AS SELECT * FROM NMANSTG.EMANADM.UCFM_JOB_INSTANCE_DATA_LOG;
内容的提问来源于stack exchange,提问作者jyoti singh
相关产品推荐
相关产品推荐

