web-dev-qa-db-ja.com

LONG VARCHARの「LIKE」はいかがですか。

DB Vertica 8.0を使用していました。タイプLONG VARCHARのテーブルインクルードフィールドを持つスキーマ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」はいかがですか。

1

バージョン7.1 または 8. 状態のLONGデータ型に関するVerticaのドキュメント:

注記

LONGデータ型の最適なパフォーマンスのために、HP Verticaは次のことをお勧めします。

  • LONGデータ型をストレージのみのコンテナーとして使用します。 HP Verticaは、コンテンツの操作をサポートしていません。
  • 可能な限り、VARBINARYの代わりにVARCHARおよびLONGデータ型を使用してください。 VARBINARYおよびVARCHARデータ型はより柔軟性があり、操作の範囲が広くなっています。

VARCHARデータ型は、最大65Kバイトの文字列をサポートします。データが長くない場合は、代わりにそれを使用できます。

2
ypercubeᵀᴹ

LIKEの代わりにREGEXP_LIKEを使用できます。同様の質問の リファレンスページ および このStackoverflowの回答 を参照してください。ただし、LIKE演算子でサポートされている%または_の単純なワイルドカードは使用できません。より複雑なケースを見つけるには、正規表現について知っておく必要があります。

0
kangbu