ORACLE之存储过程(PROCEDURE)实例

-----------------基本结构---------------------
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER, --可选参数,in表示传入,out表示输出
参数2 IN NUMBER
)AS --is 或 as
变量1 INTEGER := 0;  --定义变量  
变量2 DATE;
BEGIN
  --存储过程的执行体
  NULL;
END 存储过程名字

----------WHILE循环实例---------------
CREATE OR REPLACE PROCEDURE PROCEDURE_TEST
AS
TOTAL NUMBER(10);
COUNTER NUMBER(10) := 0; --计数器
BEGIN
  SELECT COUNT(*) INTO TOTAL FROM TEMP_YXX_1129_2;
  DBMS_OUTPUT.PUT_LINE('数量:' || TOTAL);
  WHILE COUNTER < 10 LOOP
    DBMS_OUTPUT.PUT_LINE('循环:' || COUNTER);
    COUNTER := COUNTER + 1;
  END LOOP;
END PROCEDURE_TEST;
--DROP PROCEDURE PROCEDURE_TEST
-------------FOR IN循环实例----------------
CREATE OR REPLACE PROCEDURE PROCEDURE_TEST
AS
TOTAL NUMBER(10);
COUNTER NUMBER(10) := 0; --计数器
CURSOR CUR IS SELECT * FROM TEMP_YXX_1129_2;  --游标的结果不是单个列
BEGIN
  SELECT COUNT(*) INTO TOTAL FROM TEMP_YXX_1129_2;
  DBMS_OUTPUT.PUT_LINE('数量:' || TOTAL);
  FOR CUR_RESULT IN CUR LOOP
    BEGIN  --这个BEGIN END可选
      DBMS_OUTPUT.PUT_LINE('FOR IN:' || CUR_RESULT.NAME);
    END;   --可选
  END LOOP;
END PROCEDURE_TEST;
--DROP PROCEDURE PROCEDURE_TEST
-------------- 带输入参数的存储过程----------------
    <<参数的数据类型不能指定长度>>
CREATE OR REPLACE PROCEDURE PROCEDURE_TEST
(COU IN NUMBER)
AS
TOTAL NUMBER(10) := 0;
BEGIN
  DBMS_OUTPUT.PUT_LINE('参数:' || COU);
END PROCEDURE_TEST;
--调用存储过程--
BEGIN
  PROCEDURE_TEST(5);
END;
--调用存储过程2--
DECLARE
 NUMB NUMBER(10);
BEGIN
  NUMB := 8;
  PROCEDURE_TEST(NUMB);
END;
----------有输入输出参数的返回值---------------------
CREATE OR REPLACE PROCEDURE PROCEDURE_TEST
(CIN IN NUMBER,COUT OUT NUMBER)
AS
BEGIN
  --将表中的AGE字段赋值给COUT
  SELECT AGE INTO COUT FROM TEMP_YXX_1129_2 WHERE ID = CIN;
  DBMS_OUTPUT.PUT_LINE('参数:' || CIN);
  DBMS_OUTPUT.PUT_LINE('存储过程里返回值:' || COUT);
END PROCEDURE_TEST;
--调用存储过程--
DECLARE
 NUMB NUMBER(10);
BEGIN
  PROCEDURE_TEST(1,NUMB);
  DBMS_OUTPUT.PUT_LINE('调用存储过程的返回值:'||NUMB);
END;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值