gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 22:37:13 26 4
gpt4 key购买 nike

我在 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”,而不是它们的值。

尝试:

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;

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

exception when others then 
dbms_output.put_line(' Error Msg : ' || SYS.UTL_HTTP.get_detailed_sqlcode || SYS.UTL_HTTP.Get_Detailed_Sqlerrm);

关于sql - 如何将 PLSQL 参数 (:old. numero) 放入 UTL_HTTP.REQUEST 语句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32185653/

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