Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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-00932-不一致的数据类型:应为长字符_Sql_Oracle - Fatal编程技术网

Sql ORA-00932-不一致的数据类型:应为长字符

Sql ORA-00932-不一致的数据类型:应为长字符,sql,oracle,Sql,Oracle,Oracle版本-12.1.0.2 Table name: PERSON_DATA PD_PERSON - FLOAT(126) PD_REMARK - LONG PD_DATE - DATE 我对应用程序代码调用的SQL查询有问题。该查询抛出错误ORA-00932-不一致的数据类型:应为LONG-get CHAR 查询如下: select nvl(PD_REMARK, '') from PERSON_DATA; 这与Oracle处理“”字符串的方式有关,就好像该字符串被更改为null

Oracle版本-12.1.0.2

Table name: PERSON_DATA

PD_PERSON - FLOAT(126)
PD_REMARK - LONG
PD_DATE   - DATE
我对应用程序代码调用的SQL查询有问题。该查询抛出错误ORA-00932-不一致的数据类型:应为LONG-get CHAR

查询如下:

select nvl(PD_REMARK, '') from PERSON_DATA;

这与Oracle处理“”字符串的方式有关,就好像该字符串被更改为
null
那么它就可以正常工作一样。另一件奇怪的事是,这段代码一直有效,直到几周前Oracle数据库从备用实例切换过来。这让我觉得是Oracle设置导致了这种情况,但我不知道是什么原因。

这似乎适用于DBFIDLE:…@GordonLinoff-是的,它适用于我的其他数据库。正如我所说,在我们切换(ODG)到当前活动实例之前,它在另一个实例上运行良好。在Oracle中,空字符串(
'
)与
NULL
值相同。使用
NVL(pd_remark,”)
NVL(pd_remark,NULL)
相同,后者与
pd_remark
相同(并且根本不使用
NVL
)@MT0谢谢,我也这么认为,但是,如果您将语句更改为
从PERSON_数据中选择NVL(pd_remark,NULL)然后它工作正常。必须有一些参数或某些东西影响空字符串在Oracle中的使用方式。