oracle存储过程基本语法

ORACLE存储过程的基本语法
1.基本结构:
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER;
参数2 IN NUMBER;
)AS
变量 1 INTEGER := 0;
变量 2 DATE;
BEGIN

   END 存储过程名字

2.SELECT INTO STATEMENT
  将select查询结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录       可以抛出NO_DATA_FOUND)
  例子:
  BEGIN
   SELECT col1,col2 into 变量1,变量2 FROM typestruct where XXXX;
EXCEPTION
WHEN NO_DATA_FOUND THEN 
 XXXXX;
   END;
.....
3.IF判断
  IF V_TEST=1 THEN 
     BEGIN
       do something
     END;
  END IF;
4.while 循环
  WHILE V_TEST=1 LOOP
  BEGIN
  XXXX
    END;
    ENDLOOP;
5.变量赋值
  V_TEST := 123;
6.用for in使用cursor
...
  IS
  CURSOR cur IS SELECT * FROM XXX;
  BEGIN
 FOR cur_result in cur LOOP
  BEGIN
   V_SUM :=cur_result.列名 1+cur_result.列名2
  END;
 END LOOP;
  END;
7.带参数的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
 OPEN_USER(变量值);
 LOOP
FETCH_USER INTO V_NAME;
ECIT FETCH C_USER%NOTFOUND;
  do something;
 END LOOP;
 CLOSE C_USER;
8.用pl/sql developer debug
  连接数据库后,建立一个test WINDOW
  在窗口输入调用sp的代码,F9开始debug,CTRL+N单步调试
9.pl/sql中执行存储过程
在sql*plus中:
 declare
  --必要的变量声明,视你的过程而定
 begin
   execute yourprocudure(parameter1,parameter2,....);
 end
在SQL/PLUS中调用存储过程,显示结果:
SQL>set serveoutput on --打开输出
SQL>var info 1 number; --输出1
SQL>var info 2 number; --输出2
SQL>declare
       var1 varchar2(20);   --输入1
       var2 varchar2(20);   --输入2
       var3 varchar2(20);   --输入2
       BEGIN
          pro(var1,var2,var3,:info1,:info2);
       END;
       /
SQL>print info1;
SQL>print info2;
注:在EXECUTE IMMEDIATE STR 语句是SQLPLUS中动态执行语句,它在执行中会自动提交,类似于DP中FROMS_DDl语句,     在此语句中str是不能换行的,只能通过连接字符"||",或者在换行是加上"-"连接字符



















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值