gpt4 book ai didi

database - 执行程序 Oracle 11g

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:49 26 4
gpt4 key购买 nike

所以我在 Oracle 11g 上创建了以下过程:

create or replace PROCEDURE calc_fee
(proc_borrowed_date IN Borrowing.borrowed_date%TYPE,
proc_return_date IN Borrowing.return_date%TYPE,
proc_fee OUT number)
IS
BEGIN
proc_fee := (SYSDATE - proc_return_date) * 2;
END calc_fee;​

我如何执行它?我已经试过了

EXEC CALC_FEE(SYSDATE - 10, SYSDATE);

EXECUTE CALC_FEE(SYSDATE - 10, SYSDATE);

但是他们都给我返回ORA-00900: invalid SQL statement

最佳答案

您可以使用 call(而不是 exec)或在 PL/SQL 代码块中调用过程。另请注意,您有三个参数,因此您需要传递一个变量来捕获输出参数:

declare
V_FEE number;
begin
CALC_FEE(SYSDATE - 10, SYSDATE, V_FEE);
DBMS_OUTPUT.PUT_LINE(V_FEE);
end;

除了带有 out 参数的过程,您还可以创建一个返回值的函数:

create or replace FUNCTION calc_fee
(proc_borrowed_date IN Borrowing.borrowed_date%TYPE,
proc_return_date IN Borrowing.return_date%TYPE) return number
IS
BEGIN
return (SYSDATE - proc_return_date) * 2;
END calc_fee;

这样的函数甚至可以用在查询中:

select CALC_FEE(SYSDATE - 10, SYSDATE) from dual

关于database - 执行程序 Oracle 11g,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24214927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com