• oracle 存储过程 stored procedure 查询一条记录或多条记录


    创建基本表

    -- Create table

    create table USER_INFORMATION

    (

    P_ID            NUMBER,

    USER_LOGIN_NAME NVARCHAR2(30)

    )

    创建包:

    create or replace package pack_test is  

           type cur_test is ref cursor;  

    end pack_test; 

    /  

    --这个不能少呀,加上这个就可以在sql/plus中运行了,这个是结束符号

    创建存储过程

    create or replace procedure proc_cur(p_id in number,p_cur out pack_test.cur_test)   

    is   

           v_sql varchar2(400);

    begin  

           if p_id = 0 then   

              open p_cur for select * from user_information;   

           else   

              v_sql := 'select * from user_information where id =: p_id';   

              open p_cur for v_sql using p_id;   

           end if;   

    end proc_cur;

    测试存储过程

    -- Test statements here  

    set serveroutput on

    declare   

     v_id number := 0;  

     v_row USER_INFORMATION%rowtype;   --注意这里是表名

     p_cur pack_test.cur_test;

    begin   

     proc_cur(v_id, p_cur);  

     loop  

        fetch p_cur into v_row;  

        exit when p_cur%notfound;  

        DBMS_OUTPUT.PUT_LINE(v_row.USER_LOGIN_NAME||'='||v_row.P_ID);  

     end loop;  

     close p_cur;  

    end

    /  

     --语句块结束符号

  • 相关阅读:
    存储过程语法二
    存储过程语法一
    存储过程的优点
    .NET中Redis安装部署及使用方法简介
    UEditor富文本web编辑器
    未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService
    comet 推送消息到客户端
    文本框 只能输入数字和小数点验证
    asp.net Cache
    Windows10放开Administrator权限
  • 原文地址:https://www.cnblogs.com/shihao/p/2704423.html
Copyright © 2020-2023  润新知