您的位置:首页 > 数据库 > Oracle

Oracle存储过程,使用PL/SQL工具测试

2017-12-29 10:59 309 查看
先描述一下Oracle存储过程的基本概念:

概念存储子程序应用子程序存储位置 存储在数据库中存储在应用程序中调用方式任何数据库工具或应用中都可以调用只用在子程序建立的应用中才能调用相互调用 不可以调用应用子程序可以调用存储子程序建立子程序的文档存储的位置

Oracle数据库存储过程的语法:

CREATE [ORReplace]PROCEDURE[schema.] procedure_name
  [(argument [{IN|OUT|INOUT}] datatype,
  ...
  argument [{IN|OUT|INOUT}] datatype)]
  {IS | AS}
  [descriptionpart说明部分]
  BEGIN
  SQLSTATEMENT语句序列
  [EXCEPTION例外处理]
  END[procedureName过程名];


使用例子:

--创建存储过程
CREATE OR REPLACE Procedure Proc_Insert2
(
senterpriseno     in      int,
sbankname      in   varchar2 ,
spayname  in     varchar2,
sbankno   in   varchar2,
sman    in   varchar2,
spayno   in varchar2
)
is

begin
Insert into ACCOUNTS(id, enterpriseno, bankname,bankno, payname, man,add_time,payno)
values(seq_ACCOUNTS.nextval,senterpriseno,sbankname,sbankno,spayname,sman ,sysdate,spayno);

end Proc_Insert2;

--调用存储过程
begin
Proc_Insert2(1111,'银行','10010','下达','admin', '216546464');
commit;
end;

使用一个添加的存储过程例子来进行解释Oracle存储过程的语法。
在PL/SQL中执行,创建存储过程。




右键创建的存储过程点击“编辑”,点击“F8” 无错误表示创建无误

可以用上面的调用存储过程进行测试,或者右键存储过程,点击“测试”进行测试

创建一个带返回参数的存储过程
CREATE OR REPLACE Procedure testret
(v_payno IN accounts.payno%TYPE,
v_enterpriseno OUT accounts.enterpriseno%TYPE)
is

begin
SELECT enterpriseno INTO v_enterpriseno FROM accounts WHERE payno=v_payno;
DBMS_OUTPUT.PUT_LINE('编码为'||v_payno||'的员工已经查到!');
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('你需要的数据不存在!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生其它错误!');
end testret;

其中in 表示输入
out表示输出


同上述 右键编辑,F8执行无误,右键进行测试



执行成功,会返回sql语句查询结果。

Oracle存储过程详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息