如何将PLSQL参数(:old.numero)放入UTL_HTTP.REQUEST语句中?

如何将PLSQL参数(:old.numero)放入UTL_HTTP.REQUEST语句中?,sql,oracle,http,tomcat,plsql,Sql,Oracle,Http,Tomcat,Plsql,我在ORACLE PL/SQL中有一个触发器,如下所示: create or replace TRIGGER HISTORISATION_PRIX BEFORE UPDATE OF PRIX ON PRODUIT FOR EACH ROW DECLARE var VARCHAR2(30000); BEGIN var := SYS.UTL_HTTP.REQUEST('163.81.56.131:8019/Coctos/insertion?numero=:old.NUMERO&prix=

我在ORACLE PL/SQL中有一个触发器,如下所示:

create or replace TRIGGER HISTORISATION_PRIX 
BEFORE UPDATE OF PRIX
ON PRODUIT
FOR EACH ROW
DECLARE 
var VARCHAR2(30000);
BEGIN
var := SYS.UTL_HTTP.REQUEST('163.81.56.131:8019/Coctos/insertion?numero=:old.NUMERO&prix=:old.PRIX');
END;
正如您所看到的,在我的请求中,我想把参数
:old.NUMERO
:old.PRIX
放进去。但当我这样做时,触发器不起作用,我更新了我的表PRODUIT,但什么也没发生

但如果我放一些随机数:

 var := SYS.UTL_HTTP.REQUEST('163.81.56.131:8019/Coctos/insertion?numero=45&prix=555');
END;
然后它就完美地工作了

那么,如何在我的请求中引入参数
:old.NUMERO
:old.PRIX

看起来字符串中有“:old”,这意味着在请求中发送的是文本值“:old.NUMERO”和“:old.PRIX”,而不是它们的值

尝试:

如果这不起作用,请在触发器中临时添加一个异常处理程序(在
结束之前;
),并直接在表上运行更新(从SQLPlus,打开serveroutput):

看起来字符串中有“:old”,这意味着在请求中发送的是文本值“:old.NUMERO”和“:old.PRIX”,而不是它们的值

尝试:

如果这不起作用,请在触发器中临时添加一个异常处理程序(在
结束之前;
),并直接在表上运行更新(从SQLPlus,打开serveroutput):

看起来字符串中有“:old”,这意味着在请求中发送的是文本值“:old.NUMERO”和“:old.PRIX”,而不是它们的值

尝试:

如果这不起作用,请在触发器中临时添加一个异常处理程序(在
结束之前;
),并直接在表上运行更新(从SQLPlus,打开serveroutput):

看起来字符串中有“:old”,这意味着在请求中发送的是文本值“:old.NUMERO”和“:old.PRIX”,而不是它们的值

尝试:

如果这不起作用,请在触发器中临时添加一个异常处理程序(在
结束之前;
),并直接在表上运行更新(从SQLPlus,打开serveroutput):


为什么要捕获其他人-如果出现异常,执行更新的会话无论如何都会看到;并且可能看不到
dbms\u输出
?它工作正常,我终于找到了解决方案,并准备发布它,但谢谢@AlexPoole:我进行了更新,以澄清测试更新应该直接在打开serveroutput的数据库上进行。我加入捕获只是为了调试目的,以防OP在使用我的答案后仍然有问题,并可以向我们提供更多信息。为什么捕获其他人-如果它得到异常,执行更新的会话无论如何都会看到;并且可能看不到
dbms\u输出
?它工作正常,我终于找到了解决方案,并准备发布它,但谢谢@AlexPoole:我进行了更新,以澄清测试更新应该直接在打开serveroutput的数据库上进行。我加入捕获只是为了调试目的,以防OP在使用我的答案后仍然有问题,并可以向我们提供更多信息。为什么捕获其他人-如果它得到异常,执行更新的会话无论如何都会看到;并且可能看不到
dbms\u输出
?它工作正常,我终于找到了解决方案,并准备发布它,但谢谢@AlexPoole:我进行了更新,以澄清测试更新应该直接在打开serveroutput的数据库上进行。我加入捕获只是为了调试目的,以防OP在使用我的答案后仍然有问题,并可以向我们提供更多信息。为什么捕获其他人-如果它得到异常,执行更新的会话无论如何都会看到;并且可能看不到
dbms\u输出
?它工作正常,我终于找到了解决方案,并准备发布它,但谢谢@AlexPoole:我进行了更新,以澄清测试更新应该直接在打开serveroutput的数据库上进行。我把捕获物包括进来只是为了调试,以防OP在使用我的答案后仍然有问题,并能为我们提供更多信息。“嗯…”,克图鲁从他长眠的死亡中慢慢醒来,对自己说,“有什么东西把我从长眠的死亡中唤醒了。嗯…在老雷伊这里似乎有点潮湿。。。菲。但那会是什么呢?是什么让我回到了地球?疯狂的牧师们在祭坛上挥舞着波浪刃刀,身上绑着穿着单薄的处女。。?不。成群结队的神志不清的崇拜者高呼我的名字?不。嗯……可能是……我敢希望……b̕sͶsͶsͶlͶoͶgͶIͶcͶcͶinͶaͶtͶrͶ?!?是的!!!第一泵!!!!“他饥肠辘辘地向上游向世界……”嗯……”克图鲁从漫长的死亡之梦中慢慢醒来,自言自语道,“有什么东西把我从漫长的死亡之梦中唤醒了。嗯…在老雷伊这里似乎有点潮湿。。。菲。但那会是什么呢?是什么让我回到了地球?疯狂的牧师们在祭坛上挥舞着波浪刃刀,身上绑着穿着单薄的处女。。?不。成群结队的神志不清的崇拜者高呼我的名字?不。嗯……可能是……我敢希望……b̕sͶsͶsͶlͶoͶgͶIͶcͶcͶinͶaͶtͶrͶ?!?是的!!!第一泵!!!!“他饥肠辘辘地向上游向世界……”嗯……”克图鲁从漫长的死亡之梦中慢慢醒来,自言自语道,“有什么东西把我从漫长的死亡之梦中唤醒了。嗯…在老雷伊这里似乎有点潮湿。。。菲。但那会是什么呢?是什么让我回到了地球?疯狂的牧师们在祭坛上挥舞着波浪刃刀,身上绑着穿着单薄的处女。。?不。成群结队的神志不清的崇拜者高呼我的名字?不。嗯……可能是……我敢希望……b̕sͶsͶsͶlͶoͶgͶIͶcͶcͶinͶaͶtͶrͶ?!?是的!!!第一泵!!!!“他饥肠辘辘地向上游向世界……”嗯……”克图鲁从漫长的死亡睡眠中慢慢醒来,自言自语道,“有什么东西唤醒了我。”
create or replace TRIGGER HISTORISATION_PRIX
    BEFORE UPDATE OF PRIX
ON PRODUIT
FOR EACH ROW
DECLARE 
var VARCHAR2(30000);
BEGIN
var := SYS.UTL_HTTP.REQUEST('163.81.56.131:8019/Coctos/insertion?numero=' || :old.NUMERO || '&prix=' || :old.PRIX);
END;
exception when others then 
  dbms_output.put_line(' Error Msg  : ' || SYS.UTL_HTTP.get_detailed_sqlcode  || SYS.UTL_HTTP.Get_Detailed_Sqlerrm);