oracle 存储过程_oracle 存储过程中调用存储过程

时间:2024-07-11 20:27:50编辑:莆田seo君

oracle中,一个存储过程怎么调用另一个存储过程?这两个存储过程都带有各自的参数。直接调用似乎不行。

既然你想调用另外一个存储过程,那么就应该提供给他必要的参数,这个参数你可以通过其他方式获得,或者传空之类的。 你所说的直接调用不行,是什么意思?缺少参数?还是什么?

oracle 函数中能调用存储过程吗

oracle 函数中能调用存储过程,举例如下: 1、无参数存储过程的调用 --创建无参存储过程CREATE OR REPLACE FUNCTION stu_proc RETURN VARCHAR2 IS --声明语句段 v_name varchar2(20);BEGIN --执行语句段 SELECT o.sname INTO v_name FROM student o where o.id=1; RETURN v_name;END;--调用无参存储过程DECLARE BEGIN DBMS_OUTPUT.put_line('在PL/SQL中打印的结果:'||stu_proc);END;2、入参存储过程的调用 --创建入参存储过程CREATE OR REPLACE FUNCTION stu_proc(v_id IN NUMBER) RETURN VARCHAR2 IS --声明语句段 v_name varchar2(20);BEGIN --执行语句段 SELECT o.sname INTO v_name FROM student o where o.id=v_id; RETURN v_name;END;--调用入参存储过程DECLARE BEGIN DBMS_OUTPUT.put_line('在PL/SQL中打印的结果:'||stu_proc(1));END;

oracle 在存储过程中如何正确调用另一个存储过程

你的参数变换的种类多吗,我们做报表,每天晚上把所有的参数变换都做一次分析,然后保存在一个中间表中,前台WEB页面查询的实际上是中间表的结果!

如何在存储过程中调用其他的存储过程?

一个带参数的存储过程。 SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 ( 2 p_user_name VARCHAR2 3 ) AS 4 BEGIN 5 dbms_output.put_line('Hello ' || p_user_name || '!'); 6 END HelloWorld1; 7 / Procedure created. SQL> CREATE OR REPLACE PROCEDURE CallHelloWorld1 ( 2 p_user VARCHAR2 3 ) AS 4 BEGIN 5 -- 调用存储过程的 存储过程 6 HelloWorld1(p_user); 7 END CallHelloWorld1; 8 / Procedure created. 执行 SQL> set serveroutput on SQL> exec CallHelloWorld1( 'Tom' ); Hello Tom! PL/SQL procedure successfully completed.

oracle中运用存储过程调用函数

我也来做,以下程序经过测试,正常获取cost值,插入收银信息表正常!! --创建表 CREATE TABLE member_info( memberid NUMBER, memberlevel VARCHAR2(20), memberdis NUMBER) ; CREATE TABLE cost_info( memberid NUMBER, spend FLOAT, COST FLOAT) ; INSERT INTO member_info VALUES(1,'A',0.1); INSERT INTO member_info VALUES(2,'A',0.2); INSERT INTO member_info VALUES(3,'A',0.3); INSERT INTO member_info VALUES(4,'A',0.4); --创建函数 CREATE OR REPLACE FUNCTION function_mem(p_memeberid member_info.MEMBERID%TYPE,p_spend cost_info.SPEND%TYPE) RETURN FLOAT IS v_cost cost_info.COST%TYPE; v_memberdis member_info.MEMBERDIS%TYPE; BEGIN SELECT memberdis INTO v_memberdis FROM member_info WHERE memberid = p_memeberid; v_cost := v_memberdis* p_spend; RETURN v_cost; EXCEPTION WHEN OTHERS THEN dbms_output.put_line(SQLERRM); END ; --创建procedure CREATE OR REPLACE PROCEDURE proc_mem(p_memeberid member_info.MEMBERID%TYPE,p_spend cost_info.SPEND%TYPE) IS v_cost cost_info.COST%TYPE; BEGIN SELECT function_mem(p_memeberid,p_spend) INTO v_cost FROM dual; INSERT INTO cost_info VALUES(p_memeberid,p_spend,v_cost); COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; dbms_output.put_line(SQLERRM); END; ----执行procedure BEGIN proc_mem(1,1000); END;

上一篇:facetime怎么用_FaceTime怎么用?

下一篇:tcl么么哒_tcl么么哒是什么