根据PostgreSQL和Oracle中常见查询的需要选择文本上方的文字

问题描述 投票:0回答:1

我的桌子

名称-文件夹列-文本数据类型的描述

SELECT DISTICT description 
from FOLDER 

在PostgreSQL中工作正常,但在oracle中失败,并显示错误

ORA-00932:不一致的数据类型:预期-获得CLOB

为此,我需要在PostgreSQL和Oracle中都可以使用的通用查询SELECT DISTINCT description from FOLDER

sql oracle postgresql distinct clob
1个回答
3
投票

Oracle不支持带有DISTINCT列的CLOB。您可以使用TO_CHAR(当CLOB列的最大长度小于4000时)

SELECT DISTINCT to_char(description) from FOLDER;

由于您在评论中提到它对oracle很好用,所以我认为没有长度问题。当您正在寻找POSTGRESORACLE的通用解决方案时,我建议CAST

SELECT DISTINCT CAST(description as varchar(3000)) from FOLDER;

这在两个数据库中均应起作用。相应地将VARCHAR(N)更改为最大限制。

注意:我不建议在Oracle中使用VARCHAR而不是VARCHAR2

VARCHAR数据类型与VARCHAR2数据类型同义。为了避免行为上的可能变化,请始终使用VARCHAR2数据类型来存储长度可变的字符串。

© www.soinside.com 2019 - 2024. All rights reserved.