Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ORA-12704:case语句中的字符集不匹配_Sql_Oracle - Fatal编程技术网

Sql ORA-12704:case语句中的字符集不匹配

Sql ORA-12704:case语句中的字符集不匹配,sql,oracle,Sql,Oracle,获取不匹配错误,即使两者都是NVARCHAR2(50)。它们看起来很好分开 select O.MEDIC_NO ,O.PRO_TIN ,CASE WHEN O.MEDIC_NO IS NULL THEN '' ELSE O.PRO_TIN END AS PRO_TIN_PREVIOUS from Q119 o 问题可能是字符串文字不是NVARCHAR2(50)。案例的每个分支都需要返回相同类型的值 select O.MEDIC_NO ,O.PRO_TIN ,CASE WHEN O.MEDIC_

获取不匹配错误,即使两者都是NVARCHAR2(50)。它们看起来很好分开

select O.MEDIC_NO
,O.PRO_TIN
,CASE WHEN O.MEDIC_NO IS NULL THEN '' ELSE O.PRO_TIN END AS PRO_TIN_PREVIOUS
from Q119 o

问题可能是字符串文字不是NVARCHAR2(50)。案例的每个分支都需要返回相同类型的值

select O.MEDIC_NO
,O.PRO_TIN
,CASE WHEN O.MEDIC_NO IS NULL THEN cast('' as NVARCHAR2(50))
      ELSE O.PRO_TIN END AS PRO_TIN_PREVIOUS
from Q119 o

问题可能是字符串文字不是NVARCHAR2(50)。案例的每个分支都需要返回相同类型的值

select O.MEDIC_NO
,O.PRO_TIN
,CASE WHEN O.MEDIC_NO IS NULL THEN cast('' as NVARCHAR2(50))
      ELSE O.PRO_TIN END AS PRO_TIN_PREVIOUS
from Q119 o

WHEN's THEN列表中的第一项确定列表其余部分使用的字符集/数据类型。这里是空字符串(可能是VARCHAR2),并且您的O.PRO_TIN不是相同的字符集/数据类型(不兼容)


尝试将空字符串强制转换为与O.PRO_TIN相同的类型,或者尝试交换逻辑,使O.PRO_TIN位于第一位(
如果x不为NULL,则为O.PRO_TIN,否则为“END”

如果是WHEN's THEN list,则列表中的第一项确定列表其余部分使用的字符集/数据类型。这里是空字符串(可能是VARCHAR2),并且您的O.PRO_TIN不是相同的字符集/数据类型(不兼容)


尝试将空字符串强制转换为与O.PRO_TIN相同的类型,或者尝试交换逻辑,使O.PRO_TIN优先(
当x不为空时,则为O.PRO_TIN,否则为“结束”)

谢谢,非常感谢。谢谢,非常感谢。