sql/plus中就 exectue 函数名
解决方案 »
- Oracle存储过程中执行查询的问题
- oracle的一个奇怪的sql执行计划
- Oracle 11G 没有提供网页上用SQL语言操作数据库的界面了吗?
- 第一次见到的like用法,大家说说其效率如何
- 急求:oracle存取速度问题 (50分)
- 初涉Oracle,问下Oracle 10g r2下有多少方式实现数据库的导入及导出
- 急,win98下pb编译的客户端连接Oracle数据库缓慢
- 请教一个sql脚本产生存储过程的问题
- ORACLE中能不能只DROP数据文件(表)而保留tablespace?
- 急急!!!存储过程返回的游标不能滚动
- oracle blob 字段,我想实现两个数据库之间的复制怎么办?
- 在ORACLE中触发器调用过程的问题
如果是过程 只要用exec就行了 如果是函数,你还要声明变量,来接收返回值。
PB里面调用也可以像一般SQL一样调用
r :varchar2;
begin
r=函数();
end;/
r :varchar2;
begin
r:=函数();
end;/
CREATE OR REPLACE PROCEDURE procedure_name (
para_in1 VARCHAR2,
para_in2 varchar2,
ara_out1 out varchar2)
AS
var_1 VARCHAR2 (6);
var_2 INTEGER;
BEGIN
--程序代码
EXCEPTION WHEN OTHERS THEN
--程序出现异常的处理程序
END;
//PB中的调用方式
//申明过程变量
DECLARE P_VAR1 PROCEDURE FOR PROCEDURE_NAME(PARA_IN1,PARA_IN2);
//执行过程
execute P_VAR1;
//将输出变量取到PB申明的变量中
fetch P_VAR1 into :ls_out;
//关闭过程
CLOSE P_VAR1;
CREATE FUNCTION func_teat (para_1 VARCHAR2)
RETURN VARCHAR2
AS
BEGIN
--程序代码;
EXCEPTION WHEN OTHERS THEN
--程序出现异常时的处理代码;
END;//pb中的调用函数
SELECT func_teat(:ls_var1) into :ls_ret1 from dual;