zoukankan      html  css  js  c++  java
  • 在oracle函数中不可直接将变量作为sql语句中的参数

    错误方式:[注 S1='12','22','31'   S2='K','Z'  ]

    CREATE OR REPLACE FUNCTION FUN_TEST(S1 VARCHAR2,
                                                      S2 VARCHAR2)
      RETURN VARCHAR2 IS
      RETRUEN_STR      VARCHAR2(4000); -- 最终返回的字符
      V_SQL           VARCHAR2(1000); -- 生成的SQL
    BEGIN

        SELECT WM_CONCAT(T.AS1) INTO RETRUEN_STR
         FROM TABLE1 T
        WHERE  T.AA01 IN (S1) AND T.BB01 IN (S2 )';  
        EXECUTE IMMEDIATE V_SQL
          INTO RETRUEN_STR;

      RETURN RETRUEN_STR;

    END FUN_TEST;

    -------------------------------------------------------------------------------

    变量不可以直接放在sql语句中作为条件后的参数,需要将变量和sql进行拼接,然后再执行拼接后的语句,如下:

    正确方式:

    CREATE OR REPLACE FUNCTION FUN_TEST(S1 VARCHAR2,
                                                      S2 VARCHAR2)
      RETURN VARCHAR2 IS
      RETRUEN_STR      VARCHAR2(4000); -- 最终返回的字符
      V_SQL           VARCHAR2(1000); -- 生成的SQL
    BEGIN

        V_SQL           := 'SELECT WM_CONCAT(T.AS1)
         FROM TABLE1 T
        WHERE  T.AA01 IN (' || S1 ||
                           ') AND T.BB01 IN (' || S2 || ')';  
        EXECUTE IMMEDIATE V_SQL
          INTO RETRUEN_STR;

      RETURN RETRUEN_STR;

    END FUN_TEST;

  • 相关阅读:
    暂存未看的网址
    学习springboot+shiro的实际应用demo
    mapper.xml 的配置
    使用idea搭建Spring boot+jsp的简单web项目
    一文读懂SpringCloud与Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系
    .net core mvc 类库读取配置文件
    .net Core 2.0应用程序发布到IIS上注意事项
    Dapper扩展
    C# 请求Https
    js 记录
  • 原文地址:https://www.cnblogs.com/BruceDu/p/7307583.html
Copyright © 2011-2022 走看看