Oralce中,在SqlPlus执行PL/SQL,begin...end 或者 .sql文件

执行begin...end(结尾记得加上 '/')

begin
  dbms_output.put_line('Hello World');
end;
/

务必在结尾加上 '/' 否则无法执行,命令行会处于阻塞等待状态

执行.sql文件

@D:/test.sql;

test.sql (无输入输出参数的存储过程)

exec test_stored_procedure;

test.sql (有输入参数的存储过程)

exec test_stored_procedure('a','b');

test.sql (有输入输出参数的存储过程,由于存在输出参数,则需要改写成declare...begin...end)

declare p_error_code varchar(10);
begin
  test_stored_procedure('a','b', p_error_code);
  dbms_output.put_line(p_error_code);
end;
/

如果在 .sql文件 中使用begin...end,同样务必在结尾加上 '/'

如果想看到输出信息,需要在执行 PL/SQL 前加入如下代码

set serveroutput on;

例如:

set serveroutput on;
begin
  dbms_output.put_line('Hello World');
end;
/

总结

由于很多人平常都是使用数据库开发工具进行开发,而这些开发工具可能会自动优化一些小细节
这容易导致我们忽略命令行的正确用法,所以需要注意命令行与开发工具在使用上的区别

posted @ 2022-09-21 09:51  229  阅读(664)  评论(0编辑  收藏  举报