zoukankan      html  css  js  c++  java
  • Oracle 执行长SQL

      遇到非常长的SQL语句无法执行该怎么办呢?看下面的解决办法:

    /*-----------------------------------
    |执行长SQL,如参数、值非常大
    ----------------------------------------*/
    CREATE OR REPLACE PROCEDURE SP_EXECUTELOG(SSQL IN VARCHAR2, SLONG IN CLOB) IS
    BEGIN
      EXECUTE IMMEDIATE SSQL
        USING SLONG;
      COMMIT;
    END SP_EXECUTELOG;
    
    
    
    --使用方式
    CREATE TABLE TEMPTABLE
    (
     ID NUMBER,
     STR CLOB
    )
    
    --------------示例1,普通方式----------------------------
    BEGIN
    SP_EXECUTELOG('INSERT INTO TEMPTABLE(ID,STR) VALUES(1,:STR)',TO_CLOB('14'));
    END;
    
    
    --------------示例2,引号嵌套类型----------------------------
    DECLARE 
     SQLSTR VARCHAR2(32767):='UPDATE T_TABLE
       SET INETWORKTYPE_ID      = 1,
           SWHERERULES_CN       = '''',
           IUSERID              = 2804,
           DUPDATEDATE          = TO_DATE(''2012-04-19'', ''YYYY-MM-DD''),
           SPERFTYPE            = ''PERF_GSMCELL'',
           SSQL                 = :STR
     WHERE STEMPLATEID = ''37606''';
     VAL CLOB:=TO_CLOB('SELECT TO_CHAR(DDATE, '''' YYYY '''') Y
      FROM TABLE
     WHERE DDATE >= (SYSDATE - INTERVAL '''' 1 '''' YEAR)');
    
    BEGIN
    SP_EXECUTELOG(SQLSTR,VAL);
    END;
  • 相关阅读:
    杭电2054
    M1/M2总结
    软件开发相关的读书笔记 问题与方法
    代码复审1234跟我一起来
    电梯调度算法简述
    Pair_Work Project
    读书笔记摘录:
    Individual Project
    个人阅读作业——软件工程M1/M2的总结
    个人阅读作业2
  • 原文地址:https://www.cnblogs.com/myssh/p/2457761.html
Copyright © 2011-2022 走看看