Sql 字符集不匹配oracle错误
我有这样一个SQL语句:Sql 字符集不匹配oracle错误,sql,oracle,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
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
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
但是当我尝试运行查询时,在大小写表达式的“ELSE”部分出现了一个错误“Character set mismatch”。有人能告诉我哪里做错了吗
多谢各位
桑托沙引用你的创作。“创作人”可能是NVARCHAR2
试着这样做:
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
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
@IndowKnight这是Oracle中非常有效的语法,当您需要指定包含小写字母的名称时使用。什么是“Created_By”?@Yasir感谢您提供的信息。如果您不介意,请解释我们为什么插入“N”在我们的标准之前,我想这是对Oracle的一个提示,下面的字符串类型是
NCHAR
(Unicode字符集),否则它可能会认为它是CHAR
。