LONG VARCHAR如何“LIKE”?
问题描述:
我有DB Vertica 8.0。按照LONG VARCHAR类型创建具有表包含字段的WAREHOUSE模式。现在,我试图execude SELECT例如LONG VARCHAR如何“LIKE”?
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我用DBMS_LOB包CLOB领域。
Vertica对LONG VARCHAR类型具有simular包吗?
LONG VARCHAR如何“LIKE”?
答
如fine manual中所述,Vertica中的(SQL标准)LIKE谓词接受CHAR,VARCHAR,BINARY和VARBINARY数据类型。
要在LONG VARCHAR列上执行LIKE操作,您可以使用REGEXP_LIKE
(无需安装/使用任何特殊软件包)。这样:
SELECT * FROM WAREHOUSE.ALL_EVENTS a
WHERE REGEXP_LIKE(a.original_data, 'd963');
就是这样。