如何在一个sqlscript for Oracle中运行多个语句
我试图在一个sql文件中运行一些语句,但它不起作用如何在一个sqlscript for Oracle中运行多个语句,oracle,Oracle,我试图在一个sql文件中运行一些语句,但它不起作用 declare new_sequence INTEGER; begin select LAST_NUMBER + 1 into new_sequence from user_sequences where SEQUENCE_NAME = 'MLTS_SEQUENCE'; execute immediate 'Create sequence Table_SEQ start with ' |
declare
new_sequence INTEGER;
begin
select LAST_NUMBER + 1
into new_sequence
from user_sequences
where SEQUENCE_NAME = 'MLTS_SEQUENCE';
execute immediate 'Create sequence Table_SEQ start with '
|| new_sequence ||' increment by 1';
end;
如果我在eclipse数据库插件中使用“作为一条语句执行”选项运行这个块,它就会工作
如何将sqlscript标记为将这些块作为一条语句运行,以便稍后使用sqlplus或eclipse以外的其他工具执行脚本
我试着在前面和/或在最后走,但也没有成功。只要它在自己的行上并左对齐,在sql*plus中应该可以:
SQL> create sequence MLTS_SEQUENCE start with 1 cache 20;
Sequence created.
SQL> select MLTS_SEQUENCE.nextval from dual;
NEXTVAL
----------
1
SQL> declare
2 new_sequence INTEGER;
3 begin
4 select LAST_NUMBER + 1
5 into new_sequence
6 from user_sequences
7 where SEQUENCE_NAME = 'MLTS_SEQUENCE';
8
9 execute immediate 'Create sequence Table_SEQ start with '
10 || new_sequence ||' increment by 1';
11 end;
12 /
PL/SQL procedure successfully completed.
SQL> select Table_SEQ.nextval from dual;
NEXTVAL
----------
22
sqlplus的正确格式如下所示:
declare
...
begin
...
end;
/
GO是sybase/sqlserver语法。结尾的“/”是正确的(它必须是一行中的第一个字符)。当您在块“但它不工作”之后使用/通过sqlplus运行时,发生了什么错误?这还不够详细。如果您希望我们帮助您,您需要描述发生了什么,包括您收到的任何错误消息。另外,请清楚你在哪里运行什么。谢谢你是对的,它确实有效,我的脚本中一定有一些错误。它是否也适用于squirrel/eclipse等。?因为在这里,我得到了“PLS-00103:遇到符号“文件结束”时,应满足以下条件之一:=.(@%;非空范围默认字符“@LolaParola,该错误表明您已输入”在
END
之后,即您在下一行有END
然后/
?现在一切正常,谢谢!必须将语句分隔符从;改为/在松鼠的“会话属性->sql”中。注释呢?可以在foo.sql
中嵌入注释吗?语法是什么?谢谢!