您的位置:首页 > 数据库 > Oracle

Oracle的存儲過程編程

2016-04-19 17:47 393 查看
--创建或者更新存储过程update_user_p
create or replace procedure update_user_p(param1 in varchar2) is
v_taskName VARCHAR2(20); --定义变量,Oracle类型。
v_i        number(12);
--将User_Advisor_Log表的结果集赋给cur
CURSOR cur IS
SELECT * FROM User_Advisor_Log;
--sql开始标记,以上是定义变量,以下才写程序
begin
DBMS_OUTPUT.PUT_LINE(param1);
v_i := 0;
DBMS_OUTPUT.PUT_LINE('start!');
--遍历结果集
for cur_result in cur LOOP

begin
v_taskName := cur_result.TASK_NAME; --将结果集赋给变量v_creator,一个语句结束需要分号结尾。

--if语句开始
if v_taskName > 0 then
begin
NULL; --NULL 语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
end;
end if;

--while循环
while v_taskName > 0 LOOP
begin
NULL;
end;
end LOOP;

--建议每循环一万次提交一下
v_i := v_i + 1;
if mod(v_i, 10000) = 0 then
commit;
end if;

--有异常输出,或者在这里回滚
exception
when others then
DBMS_OUTPUT.PUT_LINE('update_user_p has error!');
end;
end LOOP; --循环结束
commit;
DBMS_OUTPUT.PUT_LINE('end and commit!');
end update_user_p;
执行存储过程:call update_user_p('this is param')。在output 里可以看见DBMS_OUTPUT.PUT_LINE的输出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: