我目前正致力于在PL / SQL Developer中开发一些SQL脚本,我得到了一个:
SQL命令未正确结束
错误,我不确定如何解决。
我使用的代码看起来像这样
CREATE TABLE temp_table as
SELECT * FROM table_x
INSERT INTO temp_table
SELECT * FROM table_y
如果我执行两个部分(create table
和insert
)作为单独的部分,一切运行正常,即选择每个代码块并执行。但是,如果我尝试执行所有操作,请选择所有代码并执行,我会收到错误消息:
SQL命令未正确结束
当我处理非常小的表时,我不介意处理这个问题,但是当我有大量的操作时,我需要按顺序执行,当每个操作需要很长时间才能运行时,我想要执行代码并走开。
添加分号会引发新错误,这是一个错误:
无效字符
这是引发无效字符错误的代码。
CREATE TABLE temp_table as
SELECT * FROM table_x where x > 1;
INSERT INTO temp_table
(
SELECT * FROM table_y where x > 1;
)
答案 0 :(得分:7)
在每个陈述的末尾加上分号。
答案 1 :(得分:2)
试试这个:
CREATE TABLE temp_table as
SELECT * FROM table_x;
INSERT INTO temp_table
SELECT * FROM table_y;
我认为括号弄乱了你。
答案 2 :(得分:0)
括号可用于指定要在其中插入数据的列,如下所示:
INSERT INTO temp_table(col1,col2,... coln)SELECT ...
您收到错误,因为解析器在括号
之间找到了一个选择表达式而不是列列表答案 3 :(得分:0)
如果您在PL / SQL Developer中的一步中运行脚本,则可能需要将其转换为“SQL * Plus”脚本 - 即分号需要分隔语句,然后是/(正斜杠) )需要运行语句,例如:
CREATE TABLE temp_table as
SELECT * FROM table_x where x > 1;
/
INSERT INTO temp_table
SELECT * FROM table_y where x > 1;
/