`
Forestsai
  • 浏览: 19595 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
存储过程学习
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;
EXCEPTION 
WHEN 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
BEGIN
XXXX
END;
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; 
Global site tag (gtag.js) - Google Analytics