1、在使用Oracle数据库过程中,常规的执行存储过程(procedure)的方式有两种:
一是在类似PL/SQL Developer的工具软件上点击界面按钮的方式执行,若有传入参数可以在测试窗口的值域中填入相应的参数值,再继续调试和运行,传出参数会在运行完成后自动显示;
二是用Sqlplus命令行的方式:
proc_upd_table_name.prc为编写好的存储过程,在末尾需加上一行内容为/
SQL> @proc_upd_table_name.prc;
SQL>alter procedure proc_upd_table_name compile;
SQL> executeproc_upd_table_name('20160128',420)
SQL> quit;
此处的存储过程proc_upd_table_name有两个参数,均为传入参数,语句alter procedure proc_upd_table_namecompile为重新编译该存储过程,executeproc_upd_table_name('20160128',420)为执行。
2、如若用Sqlplus命令行的方式执行带有传出参数的存储过程该如何进行?
经测试可以采取下面的方式:
proc_upd_py_pdar_debt(i_datein char,i_id in number,o_flag out int,o_msgout varchar)
SQL>var flag number;
SQL> var msg varchar2(256);
SQL>exec proc_upd_table_name('20160128',420,:flag,:msg)
SQL> print flag
SQL> print msg
注意:传出参数前加 :
打印传出参数的值用print