zoukankan      html  css  js  c++  java
  • ORACLE 存储过程游标返回多行

    1、过程主体

      --存储过程循环 ,SELECT INTO 是隐式游标只能返回一行
      CREATE OR REPLACE PROCEDURE P_LOOP_PR (
      P_TIME NUMBER)
      IS
      A_OVER NUMBER;
      A_NAME VARCHAR2(20);
      BEGIN
         FOR I IN 1..10 LOOP
        SELECT A.PRODUCT_NUM*A.PRODUCT_NUM,A.PRODUCT_NAME
        INTO A_OVER,A_NAME
        FROM PRODUCT_RELEASE A
        WHERE A.PUT_TIME=P_TIME 
        ORDER BY A.PRODUCT_ID;
       
          DBMS_OUTPUT.PUT_LINE('商品名称:'||A_NAME||','||'商品总价:'||A_OVER);
          END LOOP;
          EXCEPTION
            WHEN NO_DATA_FOUND THEN
              DBMS_OUTPUT.PUT_LINE('NO_DATA_FOUND');
          END P_LOOP_PR;

    2、调用

       --调用
       DECLARE
       BEGIN
         P_LOOP_PR('20181220');
         END;
          
        

    3、存储过程用游标实现返回多行

     ----存储过程,游标实现 要求要返回多行,
       CREATE OR REPLACE PROCEDURE P_LOOP_PR (
      P_TIME NUMBER)
      IS
      A_OVER NUMBER;
      A_NAME VARCHAR2(20);
      CURSOR PL_CURSOR IS 
     SELECT A.PRODUCT_NUM*A.PRODUCT_NUM,A.PRODUCT_NAME FROM PRODUCT_RELEASE A
        WHERE A.PUT_TIME=P_TIME
         ORDER BY A.PRODUCT_ID;
      BEGIN
          OPEN PL_CURSOR;
          FOR I IN 1..8 LOOP
         FETCH PL_CURSOR INTO A_OVER,A_NAME;
         DBMS_OUTPUT.PUT_LINE('商品名称:'||A_NAME||','||'商品总价:'||A_OVER);
         END LOOP;
          EXCEPTION
            WHEN NO_DATA_FOUND THEN
              DBMS_OUTPUT.PUT_LINE('NO_DATA_FOUND');
          END P_LOOP_PR;
  • 相关阅读:
    ubuntu12.04下设置IPv6
    ubuntu下vncserver配置
    ubuntu12.04安装gerrit代码审核服务器
    Linux + Eclipse 配置交叉编译环境
    进程间通信基础
    ubuntu下搭建git服务器
    udev
    rpcgen的简单讲解及例子程序
    rpc简介、原理、实例-缘于difx
    windows下常用开源软件
  • 原文地址:https://www.cnblogs.com/jian-96/p/10169762.html
Copyright © 2011-2022 走看看