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');
就这些了。
我有 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');
就这些了。