最近在学存储过程,用PLSQL写,开始是写到Procedures下的,可以test存储过程好不好用。
现在做实际开发都是写在Packages和Package bodies下,其实不是很清楚为什么要写在这个下面,现在想执行一下写的东西好不好用,不知该怎么执行了,请教各位了,谢谢!
现在做实际开发都是写在Packages和Package bodies下,其实不是很清楚为什么要写在这个下面,现在想执行一下写的东西好不好用,不知该怎么执行了,请教各位了,谢谢!
想要调用包里的函数或者存储过程就使用package_name.function_name这种方式来调用
是的,在PL/SQL中直接调用
和package里有function和procedure,和普通的function,procedure的调用一样,和他们不同的是,要多带上包名, 比如
procedure没有返回参数,直接调用
dbms_output.put_line('111');
这里put_line是dbms_out包里的一个procedurefuction不能没有返回参数,
所以需要用赋值的方法或者是select的方法
select * from table(dbms_xplan.display)
这里display是dbms_xplan包里的一个function。
CREATE OR REPLACE PACKAGE PACK_BALANCE IS
PROCEDURE PRO_BLANCE(IN_NENGETU IN VARCHAR2,
IN_USERID IN VARCHAR2, OUT_RET
OUT NUMBER);
END PACK_BALANCE;然后在PACKAGE BODY里写详细内容。你的意思是在SQL窗口里‘pack_balance.PRO_BLANCE('200907','080260','')’这样写吗?
可是一执行SQL时会报‘ORA-00900:invalid SQL statement’的错误,
是我写的不对吗?
begin
pack_balance.PRO_BLANCE('200907','080260','');
end;
--or
up