【问题标题】:SQL Trigger call function in JavaJava中的SQL触发器调用函数
【发布时间】:2021-02-18 10:16:44
【问题描述】:

您好,我的毕业论文有问题。我应该在 Orale 上编写一个触发器,它应该执行一个 java 函数,但问题是:


create or replace function callTokengenerator
return boolean
as language java
NAME 'SqlStatements.setTrigger()
     return java.lang.Boolean';


create or replace PROCEDURE generateTokens
is
begin
    callTokengenerator;
end;


CREATE OR REPLACE TRIGGER tokengenerator AFTER UPDATE OF ACTIVE ON COURSE Declare
    run boolean := generateTokens;
BEGIN
    run;
END;

这是我产生的错误

Error Message

【问题讨论】:

  • 您能告诉我们您使用的是什么RDBMS吗? Java-trigger 是高度依赖数据库的特性
  • 具体有什么“问题”?请逐字添加任何错误消息(创建时或运行时)

标签: java sql oracle spring-boot triggers


【解决方案1】:

“RUN”不是有效的 Oracle 命令。触发器必须直接调用该函数。有关正确的触发器语法和构造,请参见此处:https://docs.oracle.com/en/database/oracle/oracle-database/19/jjdev/calling-Java-from-database-triggers.html#GUID-5C498DEF-0348-484D-AA26-2A88EF348D5C

试试这个:

create or replace function callTokengenerator
return boolean
as language java
NAME 'SqlStatements.setTrigger()
     return java.lang.Boolean';

CREATE OR REPLACE TRIGGER tokengenerator AFTER UPDATE OF ACTIVE ON COURSE 
DECLARE
    run boolean;
BEGIN
    run := callTokengenerator;
END;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-14
    • 2021-07-11
    • 2013-09-19
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多