字符集不匹配oracle错误

时间:2013-04-24 10:53:33

标签: sql oracle

我有一个这样的SQL语句:

SELECT QUOTE_CREATION.*,
       CASE
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'ARA'
          THEN
             'TE161938'
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'HH-'
          THEN
             'TE161302'
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'SMT'
          THEN
             'TE161101'
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'AYP'
          THEN
             'TE108812'
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'DKR'
          THEN
             'TE160895'
          ELSE
             QUOTE_CREATION."Created_By"
       END
          AS CORRECT_USER_ID
  FROM CCO.QUOTE_CREATION QUOTE_CREATION

但是当我尝试运行查询时,我在CASE表达式的“ELSE”部分出现错误“字符集不匹配”。有人可以建议我做错了吗?

谢谢 santhosha

1 个答案:

答案 0 :(得分:2)

QUOTE_CREATION" CREATED_BY"可能是NVARCHAR2

尝试这样的事情:

SELECT QUOTE_CREATION.*,
       CASE
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'ARA'
          THEN
             N'TE161938'
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'HH-'
          THEN
             N'TE161302'
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'SMT'
          THEN
             N'TE161101'
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'AYP'
          THEN
             N'TE108812'
          WHEN (SUBSTR (QUOTE_CREATION."PO_number", 1, 3)) = 'DKR'
          THEN
             N'TE160895'
          ELSE
             QUOTE_CREATION."Created_By"
       END
          AS CORRECT_USER_ID
  FROM CCO.QUOTE_CREATION QUOTE_CREATION