关闭

Oracle存储过程语法 .

76人阅读 评论(0) 收藏 举报
1.基本结构CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN VARCHAR2) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字//oracle公司推荐使用VARCHAR2,不使用VARCHAR//存储过程传入参数的in可省略,默认就是in//没有bool类型,用int代替2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM tbl where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; ...3.IF 判断if (p2=1) then dbms_output.put_line('111'); elsif p2=2 then dbms_output.put_line('222'); else dbms_output.put_line('else');end if;--如果输出的行太长v_pos:=1;WHILE v_pos<= LENGTH(SqlStr) LOOP DBMS_OUTPUT.PUT_LINE(SUBSTR(SqlStr, v_pos, 200)); v_pos:= v_pos+ 200;END LOOP; 4.while 循环 WHILE V_TEST=1 LOOP BEGIN XXXX END; END LOOP;5.变量赋值 V_TEST := 123;6.用for in 使用cursordeclare cursor cc is select * from tbl order by id; ccrec cc%rowtype; begin for ccrec in cc loop begin dbms_output.put_line(ccrec.ID||'-'||ccrec.Name); end; end loop; end;7.带参数的cursor CURSOR 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 something END LOOP; CLOSE C_USER;8.用pl/sql developer debug 连接数据库后建立一个Test WINDOW 在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:710次
    • 积分:7
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    文章存档