SELECT DISTINCT OVER TEXT 作为 PostgreSQL 和 Oracle 中常见查询的需要

SELECT DISTINCT OVER TEXT as needs over common query in PostgreSQL and Oracle

我的table

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

SELECT DISTICT description 
from FOLDER 

在 PostgreSQL 中工作正常,但在 Oracle 中失败并出现错误

ORA-00932: inconsistent datatypes: expected - got CLOB

为此,我需要一个在 PostgreSQL 和 Oracle 中都适用的通用查询 SELECT DISTINCT description from FOLDER.

Oracle 不支持 DISTINCTCLOB 列。可以使用TO_CHAR(当CLOB列的最大长度小于4000

SELECT DISTINCT to_char(description) from FOLDER;

由于您在评论中提到它在 oracle 上运行良好,我认为不存在长度问题。当您正在寻找 POSTGRESORACLE 的共同解决方案时,我建议 CAST

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

这应该适用于 databases.Change 和 VARCHAR(N) 相应的最大限制。

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

The VARCHAR datatype is synonymous with the VARCHAR2 datatype. To avoid possible changes in behavior, always use the VARCHAR2 datatype to store variable-length character strings.