zoukankan      html  css  js  c++  java
  • oracle存储过程

    简介

    存储过程是一种命名的PL/SQL代码块,存储在Oracle数据库中,可以被用户调用。

    存储过程可以包含参数,一般没有返回值

    存储过程是事先编译好的代码,再次调用的时候不需要重新编译,因此程序的运行效率较高。

    存储过程的创建

    语法格式如下:

    create [or replace] procedure pro_name
    (参数列表)
    as
    局部变量声明
    begin
      程序语句序列
      exception
      异常处理
    end pro_name
    
    1. 参数列表

      • in 输入参数,使用 username in varchar,表示接受外部过程传递来的值。
      • out 输出参数,使用username out varchar,表示此参数将在过程中被复制,并传递到过程体外。
      • in out 表示具有输入参数特性,又有输出型特性
    2. 参数类型不能指定长度,只需要指定数据类型即可。

    3. 局部变量只在过程中有效

    e.g

    create or replace PROCEDURE p_insert_aa
    (username in varchar, age in number)
    IS
    idn number(30);
    BEGIN
    select aa_id.nextval into idn from dual;
    insert into aa(id,username, age, createman,createdate)
    values (idn, username, age, 'admin', sysdate);
    commit;
    end p_insert_aa;
    

    存储过程的调用和删除

    存储过程可以在 SQL Plus或PL/SQL块中调用。

    1. 在SQL Plus中调用
    exec pro_name(param1, param2,...); 
    execute pro_name(param1, param2,...); 
    

    sql plus安装

    1. 在PL/SQL块中调用

    不需要使用关键字exec,即可直接调用

    1. 存储过程的删除
    drop procedure pro_name;
    

    查询

    procedure M_SP_QUERYTODAYSUTTLE (WEIGHID_VAR in varchar2,DATASET_CUR_VAR out dataset_cur) as
       cur_var sys_refcursor;
         begin
           open cur_var for
             SELECT t.heatname, t.kettle_no, t.gross,
                    to_char(t.grosstime, 'mm-dd hh24:mi:ss') as grosstime, t.tare,
                    to_char(t.taretime, 'mm-dd hh24:mi:ss') as taretime, t.dross,
                    t.suttle,
                    to_char(t.suttletime, 'mm-dd hh24:mi:ss') as suttletime,
                    t.grossweighname,
                    to_number(substr(t.sequence_no,
                                      length(t.sequence_no) - 5 + 1,
                                      5)) as sequence_no, t.materialname,
                    t.sourcecode, t.sourcename, t.targetcode, t.targetname
               FROM MSR_IRON_V t
              WHERE (T.SUTTLE > 0)
                and (T.validflag = 1)
                and (t.grosstime >=
                    to_date(to_char(sysdate, 'yyyy-mm-dd'), 'yyyy-mm-dd'))
                and (t.grossweighid = weighid_var)
              ORDER BY suttletime desc;
           dataset_cur_var := cur_var;
         end;
    
  • 相关阅读:
    马赛克算法及iOS代码实现
    iOS制作Static Library(静态库),实现多工程的连编
    iOS由ImageIO.framework实现gif的系统解码
    KVC和KVO实现监听容器类(数组等)的变化
    Dynamicaly Typed(动态定型), Objective-C Runtime Programming
    Mac OSX下修改hosts文件
    MAC配置SVN服务器
    Encoding非常用编码转换
    Block作为参数使用
    UITextField关闭系统自动联想和首字母大写功能
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/13933329.html
Copyright © 2011-2022 走看看