.Bat 文件调用Sql脚本 (也就是sqlplus运行sql脚本)的注意点

时间:2022-09-30 09:42:59

今天用.Bat 文件调用一个sql 脚本,其中.Bat 及脚本入校

sqlplus  scott/tiger@orcl   @E:\dy.sql >dy.txt
exit;

---------------------------------------------------------------

execute  test_te(r_info);
exit;

如果r_info参数是一个系统变量,例如sysdate,那么执行没有问题,但是过程test_te里的参数需要用一般变量填充,这样就会提示没有声明r_info。

经过同事讨论,试了一下在plsql中的无名块。

declare
  r_info varchar2(200);
begin
 execute  test_te(r_info);
end;

这时的 execute 需要去掉,因为这里的begin已经表明了这种命令。但是这样还是执行不了,最后发现少了一个‘/’,在脚本中需要在最后加入这个标识才行;

declare
  r_info varchar2(200);
begin
  test_te(r_info);
end;

/

这样的话就可以正常执行了,如果更完美一点的话,最后在最后加上exit 即

declare
  r_info varchar2(200);
begin
  test_te(r_info);
end;

/

exit;