LONG VARCHAR 有多“喜欢”?

How “LIKE” by LONG VARCHAR?

我有 DB Vertica 8.0。使用 LONG VARCHAR 类型创建包含 table 字段的模式 WAREHOUSE。现在我尝试执行 SELECT 例如

SELECT * FROM WAREHOUSE.ALL_EVENTS a 
WHERE 
a.original_data like '%d963%'

返回错误

SQL Error [4286] [42883]: [Vertica][VJDBC](4286) ERROR: Operator does not exist: long varchar ~~ unknown
  [Vertica][VJDBC](4286) ERROR: Operator does not exist: long varchar ~~ unknown
    com.vertica.util.ServerException: [Vertica][VJDBC](4286) ERROR: Operator does not exist: long varchar ~~ unknown

在 Oracle 中,我为 CLOB 字段使用了 dbms_lob 包。

Vertica 有 LONG VARCHAR 类型的模拟包吗?

LONG VARCHAR 如何 "LIKE"?

fine manual(SQL 标准)中所述,Vertica 中的 LIKE 谓词接受 CHAR、VARCHAR、BINARY 和 VARBINARY 数据类型。

要对 LONG VARCHAR 列执行 LIKE 操作,您可以使用 REGEXP_LIKE(无需 install/use 任何特殊包)。这样:

SELECT * FROM WAREHOUSE.ALL_EVENTS a 
WHERE REGEXP_LIKE(a.original_data, 'd963');

就这些了。