• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle中的procedure编写和使用详解

    1.创建/修改

    CREATE [OR REPLACE] PROCEDURE procedure_name
    [(parameter_list)]
    {IS|AS}
    [local_declarations]
    BEGIN
    executable_statements
    [EXCEPTION exception_handlers]
    END [procedure_name];

    a.parameter_list格式如下

     parameter_name1 [in | out | in out] type, parameter_name1 [in | out] type [,........]

    in 是输入参数, 可以有默认值,默认值例子 emp_no in number:=7900

    out 是输出参数,

    b.AS/IS的区别

    在视图(VIEW)中只能用AS不能用IS

    在游标(CURSOR)中只能用IS不能用AS

    c.local_declarations格式如下:

        loacal_var1 type(limit);

    如empname varchar2(20);

    d.输出变量赋值

    oracle 变量赋值有两种一种是直接 := 还有就是 select into

    游标参数

    outcur OUT BASIC_CURSOR:
     OPEN outcur FOR SELECT col1,col2 FROM tablename

    e.示例

    create or replace procedure putNum(P_Date in date, P_year out varchar2) is 
     v_num number(8) := 1; 
     v_days number; 
     v_date date; 
    begin 
     dbms_output.put_line('intput value:' || P_year); 
     v_num := 1; 
     v_days := 1; 
     v_days := to_number(to_char(P_Date, 'dd')); -- to_char(sysdate-20,'dd') 
     for i in 1 .. v_days Loop 
     v_date := to_date('2011/11/' || to_char(i), 'yyyy/MM/dd'); 
     --dbms_output.put_line(v_date); 
     end loop; 
     P_year := '2012'; 
    end;

    2.调用

    [EXECUTE]|[CALL] procedure_name[(parameter,…n)]

    在代码块 declare 的 begin/end 中不需要 [EXECUTE]|[CALL], 直接 procedure_name[(parameter,…n)]

    其他外部程序需要 [EXECUTE]|[CALL]

    在PL/SQL中调用这个存储过程,采用了如下的代码:

    begin
    Proc_Insert('hello6',25,'2005-12-24');
    commit;
    end;

    3.显示调试信息

    a.存储过程中在必要的位置添加

    DBMS_OUTPUT.put_line ('Hello World!');

    b.打开DBMS_OUTPUT

    show serveroutput;
    set serveroutput on;

    c.测试我们的 procedure

    复制代码 代码如下:

    exec procedure_name

    3.显示错误 show errors

    如果在 exec 存储过程中提示出现错误,时刻使用"show errors"命令查看哪里出错了

    4.查看

    a.所有 procedure

    select object_name,object_type,status from user_objects where OBJECT_TYPE='PROCEDURE';

    b.指定 procedure

    SELECT text FROM user_source WHERE NAME = 'procedure_name';

    5.删除

    DROP PROCEDURE procedure_name;

    以上所述是小编给大家介绍的oracle中的procedure编写和使用详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • oracle中 procedure(存储过程)和function(函数)本质区别
    • 全面解析Oracle Procedure 基本语法
    上一篇:oracle中 procedure(存储过程)和function(函数)本质区别
    下一篇:关于oracle中clob字段查询慢的问题及解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle中的procedure编写和使用详解 oracle,中的,procedure,编写,