我的桌子
名称-文件夹列-文本数据类型的描述
SELECT DISTICT description
from FOLDER
在PostgreSQL中工作正常,但在oracle中失败,并显示错误
ORA-00932:不一致的数据类型:预期-获得CLOB
为此,我需要在PostgreSQL和Oracle中都可以使用的通用查询SELECT DISTINCT description from FOLDER
。
Oracle不支持带有DISTINCT
列的CLOB
。您可以使用TO_CHAR
(当CLOB列的最大长度小于4000
时)
SELECT DISTINCT to_char(description) from FOLDER;
由于您在评论中提到它对oracle很好用,所以我认为没有长度问题。当您正在寻找POSTGRES
和ORACLE
的通用解决方案时,我建议CAST
SELECT DISTINCT CAST(description as varchar(3000)) from FOLDER;
这在两个数据库中均应起作用。相应地将VARCHAR(N)
更改为最大限制。
注意:我不建议在Oracle中使用VARCHAR
而不是VARCHAR2
。
VARCHAR数据类型与VARCHAR2数据类型同义。为了避免行为上的可能变化,请始终使用VARCHAR2数据类型来存储长度可变的字符串。