以前没怎么写过procedure,现在做程序,典型程序员都习惯用
代码,但是用代码,一些处理肯定是不如用sql处理的快而简单的,
在没有热部署的情况下,改代码,还需要每次都编译,很麻烦
先创建package,然后创建 package body
CREATE OR REPLACE PACKAGE test
IS
PROCEDURE testprocedure; //定义这个package中的procedure
END test;
最简单的package可以是:
CREATE OR REPLACE PACKAGE test
IS
END test;
然后写package body:
CREATE OR REPLACE PACKAGE BODY test
IS
PROCEDURE testprocedure
IS//is下面是准备 全局变量的地方
//定义变量,后面要用分号隔开
testnum table.dept_no%TYPE;//这里可以获取某个表的某个字段的类型来定义变量
--使用游标来存数据
CURSOR cursorname 给游标起个名字
IS
SELECT * from table01; //给这个游标赋值
BEGIN
//使用游标循环
--
FOR v IN cursorname LOOP
IF v.testno = 1 THEN
v.testno := 1;//注意赋值要用的符号:=
EXIT;
end if;
END LOOP;
//---start 这个部分需要
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
//---end 这个部分需要 没有的话a5里面会报错
END testprocedure;
END test;