Oracle 存储过程 基本知识


1.
CREATE OR REPLACE PROCEDURE test
(var_name_1 IN TYPE,var_name_2 OUT TYPE)AS
--申明变量

BEGIN
--存储过程的执行体

END test;

打印出 输入时间的信息

E.g:

CREATE OR REPLACE PROCEDURE test(workDate IN DATE)IS

BEGIN

dbms_output.put_line(.................);

END test;

2.变量赋值

变量名 := 值;

E.g:

CREATE OR REPLACE PROCEDURE test(workDate IN DATE)IS

x NUMBER(4,2);

BEGIN

x:=1;

END test;

3.判断语句

CREATE OR REPLACE PROCEDURE test(x IN NUMBER)IS

BEGIN

IF() x>0 THEN
BEGIN
x:=0-x;
END;
END IF;

IF(x=0)THEN
BEGIN
x:=1;
END;
END IF;

END test;

4.FOR循环

FOR ... IN ... LOOP

-- 执行循环

END LOOP;
(1)循环遍历游标

CREATE OR REPLACE PROCEDURE test() AS

CURSOR cursor_ IS SELECT name_ FROM student; name_ VARCHAR(20);

BEGIN

FOR name_ IN cursor_ LOOP

BEGIN

dbms_output.put_line(name_);

(2)循环遍历数组

CREATE OR REPLACE PROCEDURE test(varArray IN myPackage.TestArray)AS

i NUMBER;

BEGIN

i := 1;
-- 存储过程数组时起始位置是从1开始的,与Java,C等不同,
--因为在oracle中式没有数组概念的
--数组其实就是一张表
--每个数组元素就是表中的一个记录
--所有遍历数组就是相当于从表的第一条记录开始遍历

FOR i IN 1 .. varArray.count LOOP

dbms_output.put_line(..............................);

END LOOP;

END test;;

(3)WHILE 循环

WHILE 循环条件 LOOP

BEGIN
END;

END LOOP;

E.g

CREATE OR REPLACE PROCEDURE test(i IN NUMBER)AS

BEGIN

WHILE i < 100 LOOP

BEGIN

i := i + 1;

END;

END LOOP;

END test;

6.数组

x ARRAY; -- 使用时需要进行初始化

CREATE OR REPLACE PROCEDURE test(y OUT ARRAY)IS

x ARRAY;

BEGIN

x := NEW ARRAY();

y := x;

END test;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值