论坛首页 综合技术论坛

oracle存储过程基本用法

浏览 3864 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-09-30  

使用存储过程的好处:
第一、大大提高效率。存储过程本身的执行速度非常快,而且,调用存储过程可以大大减少同数据库的交互次数。
第二、提高安全性。假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着库结构失密。
第三、有利于SQL语句的重用。

oracle 存储过程的基本语法
1.基本结构
CREATE 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)
例子:
BEGIN
 SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;
 EXCEPTIONWHEN NO_DATA_FOUND
  THEN xxxx;
 END;
 
3.IF 判断
 IF V_TEST=1 THEN
  BEGIN
   do something
  END;
 END IF;

4.while 循环
 WHILE V_TEST=1 LOOP
  BEGINXXXXEND;
 END LOOP;

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 C_USER(变量值);
   LOOP
    FETCH C_USER INTO V_NAME;
    EXIT FETCH C_USER%NOTFOUND;
    do something
   END LOOP;
  CLOSE C_USER;

 
 

   发表时间:2011-10-25  
太多procedue有一点就够你受了。
维护起来,要人命。
0 请登录后投票
   发表时间:2011-10-28   最后修改:2011-10-28
那东西少用为好
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics