创建存储过程
CREATE OR REPLACE procedure "TS_TEST" as
//声明变量(下面示例中有用到,注意查看)
o_succes VARCHAR2(5);
name VARCHAR2(50);
test_sql VARCHAR2(100);
t_type NUMBER(5);
Begin
o_succes:=0;
t_type:=0;
//方法
end ZX_TEST;
注:所有的逻辑代码都要写在Begin-end;内
1、调用其他存储过程
存储过程名称(in参数,out参数)
in-入参
out-返回参数
2、for循环
for i in (select name from SYS_USER) loop
name:=i.name;
end loop;
3、if语句
if o_succes =1 then //开始
//语句
elsif o_succes =2 then
//语句
ELSE
//语句
end if; //结束
4、动态调用存储过程
for i in (select name from SYS_USER) loop
name:=i.name;
//拼接存储过程
//name的值为动态存储过程名
//这里的o_success是返回参数,所以用:o_success,解决以下问题
test_sql:='begin '||name||'('||t_type||',:'||o_succes||'); end;';
Execute Immediate test_sqlUsing Out o_succes;
end loop;
返回参数获取错误
PLS-00363: expression '0' cannot be used as an assignment target