以前沒怎麼寫過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;