CREATE OR REPLACE FUNCTION FN_MULTAS_TOTAL
RETURN INTEGER
IS
V_TOTAL INT;
BEGIN
SELECT SUM(MULTA)
INTO V_TOTAL
FROM DETALLE_ARRIENDO;
RETURN V_TOTAL;
END;
SQL> create or replace function fn_multas_total
2 return integer
3 is
4 v_total int;
5 begin
6 select sum(multa)
7 into v_total
8 from detalle_arriendo;
9 return v_total;
10 end;
11 /
Function created.
SQL> begin
2 detalle_arriendo;
3 end;
4 /
detalle_arriendo;
*
ERROR at line 2:
ORA-06550: line 2, column 3:
PLS-00221: 'DETALLE_ARRIENDO' is not a procedure or is undefined
ORA-06550: line 2, column 3:
PL/SQL: Statement ignored
SQL>
1条答案
按热度按时间zu0ti5jz1#
这样的功能没有问题:
但是,你不能称之为
exec
-它用于sql*plus或sql developer或其他支持它的工具中;这是匿名者的“捷径”begin-end
pl/sql块:它用于过程,而不是函数。你不能只是
这意味着您必须声明一个变量并将函数的结果提取到其中,例如。
通常,我们使用函数作为
如果你非常想用
exec
,那么您仍然需要声明一个变量