【发布时间】:2020-05-20 23:50:03
【问题描述】:
ORACLE 是否可以从触发器执行存储过程?
您好,我正在尝试从触发器执行存储过程。 我已经测试了存储过程,它工作正常:
EXECUTE ESCRIBE_INVENTARIO;
然后我创建触发器:
CREATE OR REPLACE TRIGGER REPORTUSER.VENTA_ECOMMERCE
AFTER UPDATE ON INVOICE FOR EACH ROW
BEGIN
ESCRIBE_INVENTARIO;
END;
/
但是当我编译它时,我得到了这个错误:
触发 VENTA_ECOMMERCE 编译
LINE/COL ERROR
--------- -------------------------------------------------------------
2/1 PL/SQL: Statement ignored
2/1 PLS-00201: identifier 'ESCRIBE_INVENTARIO' must be declared
Errores: comprobar log de compilador
我不知道如何声明存储过程。
这是存储过程的头部,没有过程体。
CREATE OR REPLACE PROCEDURE ESCRIBE_INVENTARIO
IS
EXISTE NUMBER; -- CREACIÓN DE LA VARIABLE QUE VERIFICA SI YA SE GENERO EL INVENTARIO DIARIO
BEGIN
SELECT (SELECT COUNT(BANDERA_CONTROL) FROM REPORTUSER.CONTROL_INVENTARIO_V WHERE TRUNC(FECHA) = TRUNC(SYSDATE) AND BANDERA_CONTROL = 1) INTO EXISTE FROM DUAL;
IF EXISTE = 0 THEN
...
【问题讨论】:
-
过程
ESCRIBE_INVENTARIO是否创建在架构中:REPORTUSER?
标签: oracle stored-procedures triggers