oracle 数据库中存储过程输出情况

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 数据库中存储过程输出情况相关的知识,希望对你有一定的参考价值。

参考技术A

1、编写存储过程,

create or replace procedure test_pro(in_num number)

as

  M number;

begin

  M := in_num;

  if 0 < M then

    dbms_output.put_line('输出SQL语句1');

  elsif M < 3 then

    dbms_output.put_line('输出SQL语句2');

  else

    dbms_output.put_line('nothing');

  end if;

end;

2、在command窗口编译,

3、执行存储过程,输入变量,实际什么也不输入,

4、切到DBMS输出窗口,查看输出结果,‘nothing’,也就是说并没有执行‘输出SQL语句’,

Oracle 存储过程

1.1存储过程

  存储过程是一种命名的PL/SQL程序块,他可以有参数,也可以有若干个输入、输出参数。甚至可以有多个即做输入又做输出的参数,但他都没有返回值。存储过程被保存在数据库中,他不可以被SQL语句直接执行调用。通过EXECUTE命令或在PL/SQL命令中调用,因为存储过程是已经编译好的代码块,所以被调用或引用时,执行效率很高。

1.1.1 存储过程的创建和执行

  用户的储存过程只能定义在当前数据库中,用户创建的储存过程归登录数据库的用户拥有。单DBA可以把许可授权给其他用户。在存储过程的定义体中不可以使用下列对象:

  CREATE VIEW  CREATE DEFAULT  CREATE RULE  CREATE PROCEDURE  CREATE TRIGGER

1.1.2创建储存过程

create [or replace] procedure pro_name [(parameter1[,parameter2]...)]  is|as
begin
    plsql_sentences;
[exception]
    [dowith_sentences;]
end [pro_name];

1.pro_name:存储过程的名称,如果数据库中已经存在此名称。则可以指定"or replace" 关键字,这样心得储存过程将覆盖原来的存储过程。
2.parameter:存储过程的参数,若是输入参数则在后面添加IN关键字,输出则添加OUT关键字,IN或OUT后面是参数的数据类型,但不能指定该类型的长度。
3.plsql_sentences:PL/SQL语句。
4.dowith_sentences:异常处理语句。

※:parameter是存储过程定义的参数,而不是存储过程定义的内部变量,内部变量要在"is|as"关键字后面定义,并使用分号结束

create or replace procedure pro_insertdept is 
begin
    insert into dept values(77,市场拓展部,JILIN);    --插入数据记录
    commit;            --提交数据
    dbms_output.put_line("插入记录成功");    --提示插入记录成功
end pro_insertdep;        

execute pro_insertdept;    --execute命令执行pro_insertdep存储过程

--修改可以使用ALTER PROCEDURE语句,也可以用CREATE OR REPLACE重新创建一个新的过程

drop procedure pro_insertdep;    --删除存储过程pro_insertdep

 

以上是关于oracle 数据库中存储过程输出情况的主要内容,如果未能解决你的问题,请参考以下文章

oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,

oracle存储过程输入参数能否为空

如何php调用oracle存储过程返回的是一个结果集,该怎么从php页面中吧数据循环输出呀

oracle存储过程如何输出结果集

Oracle数据库存储过程中输出参数为自定义游标类型时,使用call或者exec调用时,用啥来给游标赋值

oracle存储过程如何输出信息