如何使用LONG VARCHAR进行“LIKE”查询?

7
我有一个DB Vertica 8.0数据库。创建了架构WAREHOUSE,并包含字段类型为LONG VARCHAR的表。现在我尝试执行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中,我使用dbms_lob包处理CLOB字段。

Vertica是否有类似的包来处理LONG VARCHAR类型?

如何使用"LIKE"操作符处理LONG VARCHAR类型?

1个回答

7
如同详细手册所述,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');

这就是全部。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接