【问题标题】:Execute the command "UPDATE" which is in the variable CLOB执行变量 CLOB 中的命令“UPDATE”
【发布时间】:2021-03-22 01:19:14
【问题描述】:

我保留了一些 CLOB 格式的命令。我有命令“update WAYBILLS set TARE = 1212 where EXTERNAL_ID = 1212”。我想通过调用过程来做到这一点。我想执行此命令中描述的操作。但我不明白怎么做,我将不胜感激

declare 
     l_clob           CLOB;  
     v_sql            CLOB;
     
BEGIN  
     v_sql := 'update WAYBILLS set TARE = 1212 where  EXTERNAL_ID = 1212';
END ; 

【问题讨论】:

  • 看看立即执行

标签: oracle plsql oracle11g


【解决方案1】:

执行动态 SQL 的最简单方法是使用 EXECUTE IMMEDIATE。使用绑定变量。

DECLARE
   v_sql  CLOB;
   v_id   PLS_INTEGER := 1212;
BEGIN
  v_sql := 'UPDATE waybills SET tare = :id WHERE external_id = :id';
  EXECUTE IMMEDIATE(v_sql) USING v_id, v_id;
END;
/

如果您的语句长于 32k,那么您必须处理 DBMS_SQL。

您可以在这里找到更多信息,例如:Database PL/SQL Language Reference

【讨论】:

    猜你喜欢
    • 2019-04-17
    • 2014-08-27
    • 1970-01-01
    • 2014-08-30
    • 2017-11-28
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多