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;
Oracle 存储过程 基本知识
最新推荐文章于 2021-04-18 21:56:48 发布