【问题标题】:I am getting nested exception is java.sql.SQLSyntaxErrorException: ORA-00909: invalid number of arguments我得到嵌套异常是 java.sql.SQLSyntaxErrorException: ORA-00909: invalid number of arguments
【发布时间】:2021-06-21 17:01:58
【问题描述】:

这是我的查询,

SELECT
     MAX(CASE WHEN rownumber='1' THEN DISPOSITON END) AS Dispostion
    ,MAX(CASE WHEN rownumber='1' THEN SUB_DISPOSITION END) AS SUB_DISPOSITION
    ,CUST_NAME
    ,MOBILE_NO
    ,EMAIL_ID
    ,LINE_OF_BUSINESS
    ,PRODUCT_CODE
    ,REGISTRATION_NUMBER 
FROM
(
    SELECT
         ROW_NUMBER() OVER (PARTITION BY task_id ORDER BY CREATED_DATE ASC) AS rownumber
        ,a.DISPOSITON
        ,a.SUB_DISPOSITION
        ,b.CUST_NAME
        ,b.MOBILE_NO
        ,b.EMAIL_ID
        ,b.LINE_OF_BUSINESS
        ,b.PRODUCT_CODE
        ,b.REGISTRATION_NUMBER
    FROM CLICK_TO_CALL_AUDIT_LOG a 
    INNER JOIN IM_DATA b
        ON a.task_id=b.task_code
            AND UPPER(a.DISPOSITON) = UPPER(:Dis) 
            AND UPPER(a.SUB_DISPOSITION) in (UPPER(:subDis))
            AND a.CREATED_DATE BETWEEN to_timestamp(:before , 'dd-mm-yy hh24:mi:ss') 
            AND to_timestamp(:current, 'dd-mm-yy hh24:mi:ss') 
    WHERE b.ALLOCATED_USER IN (:userNameList)
    AND b.IS_LATEST = 'Y'
    AND b.TASK_STATUS <> 'JUNK LEAD'
    AND b.LINE_OF_BUSINESS = :LOB
) R
GROUP BY
     CUST_NAME
    ,MOBILE_NO
    ,EMAIL_ID
    ,LINE_OF_BUSINESS
    ,PRODUCT_CODE
    ,REGISTRATION_NUMBER;

【问题讨论】:

  • where b.ALLOCATED_USER in (:userNameList) 你不能通过这种方式通过列表过滤。 :userNameList的类型和内容是什么?
  • userNameList 是 String 类型的列表。我收到错误,而我将所有数据转换为大写。这里是 UPPER(a.SUB_DISPOSITION) in (UPPER(:subDis))

标签: sql oracle


【解决方案1】:

这个:

AND UPPER(a.SUB_DISPOSITION) in (UPPER(:subDis))

应该最有可能被重写,以便它表示 rows(而不是一个可能是逗号分隔的值列表)。像这样的:

and upper(a.sub_disposition) in (select trim(regexp_substr(upper(:subDis), '[^,]+', 1, level))
                                 from dual
                                 connect by level <= regexp_count(:subDis, ',') + 1
                                )

同样的道理

WHERE b.ALLOCATED_USER IN (:userNameList)

我推测变量(例如userNameList)看起来像例如'Scott,Tiger,Wood,King'。如果看起来不同,代码也应该调整。

【讨论】:

    猜你喜欢
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多