1、oracle 存储过程的基本语法1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字(参数 1 IN NUMBER,参数 2 IN NUMBER) IS变量 1 INTEGER :=0;变量 2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT将 select 查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出 NO_DATA_FOUND)例子: BEGINSELECT col1,col2 into 变量 1,变量 2 FROM typestruct where xxx;EX
2、CEPTIONWHEN NO_DATA_FOUND THENxxxx;END;.3.IF 判断IF V_TEST=1 THENBEGIN do somethingEND;END IF;4.while 循环WHILE V_TEST=1 LOOPBEGINXXXXEND;END LOOP;5.变量赋值V_TEST := 123;6.用 for in 使用 cursor.ISCURSOR cur IS SELECT * FROM xxx;BEGINFOR cur_result in cur LOOPBEGINV_SUM :=cur_result.列名 1+cur_result.列名 2END;END
3、 LOOP;END;7.带参数的 cursorCURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;OPEN C_USER(变量值);LOOPFETCH C_USER INTO V_NAME;EXIT FETCH C_USER%NOTFOUND;do somethingEND LOOP;CLOSE C_USER;8.用 pl/sql developer debug连接数据库后建立一个 Test WINDOW在窗口输入调用 SP 的代码,F9 开始 debug,CTRL+N 单步调试1.基本结构 CREATE
4、OR REPLACE PROCEDURE 存储过程名字(参数 1 IN NUMBER,参数 2 IN NUMBER) IS变量 1 INTEGER :=0;变量 2 DATE;BEGIN END 存储过程名字2.SELECT INTO STATEMENT将 select 查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出 NO_DATA_FOUND)例子: BEGINSELECT col1,col2 into 变量 1,变量 2 FROM typestruct where xxx;EXCEPTIONWHEN NO_DATA_FOUND THE
5、Nxxxx;END;.3.IF 判断IF V_TEST=1 THENBEGIN do somethingEND;END IF;4.while 循环WHILE V_TEST=1 LOOPBEGINXXXXEND;END LOOP;5.变量赋值V_TEST := 123;6.用 for in 使用 cursor.ISCURSOR cur IS SELECT * FROM xxx;BEGINFOR cur_result in cur LOOPBEGINV_SUM :=cur_result.列名 1+cur_result.列名 2END;END LOOP;END;7.带参数的 cursorCURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;OPEN C_USER(变量值);LOOPFETCH C_USER INTO V_NAME;EXIT FETCH C_USER%NOTFOUND;do somethingEND LOOP;CLOSE C_USER;