簡體   English   中英

Informix SQL文本Blob通配符搜索

[英]Informix SQL text Blob wildcard search

我正在尋找一種在文本 (blob)列上使用通配符搜索的有效方法。
我已經看到它在內部存儲為字節......數據量將受到限制,但遺憾的是我的供應商決定使用這種愚蠢的數據類型。 如果有一個簡單的系統端函數來修改它,我還會考慮在臨時表中移動所有東西 - 不幸的是像rpad這樣的東西不起作用......
通過使用選擇部分中的列或通過Perl的DBI模塊讀取數據,我可以正確地看到文本值。

不幸的是,你被困住了 - 你可以在TEXT或BYTE blob上執行很少的操作。 特別是,這些都不起作用:

+ create table t (t text in table);
+ select t from t where t[1,3] = "abc";
SQL -615: Blobs are not allowed in this expression.
+ select t from t where t like "%abc%";
SQL -219: Wildcard matching may not be used with non-character types.
+ select t from t where t matches "*abc*";
SQL -219: Wildcard matching may not be used with non-character types.

根據IDS的版本,您可以選擇BTS - 基本文本搜索(需要IDS v11)或其他文本搜索數據刀片。 另一方面,如果數據已經在數據庫中並且無法進行類型轉換,那么您可能會被迫提取blob並在客戶端搜索它們,這效率較低。 如果必須這樣做,請確保過濾盡可能多的其他條件,以最大限度地減少所需的流量。

您可能還會注意到DBD :: Informix必須經歷一些陰謀才能使blob看起來有效 - 很明顯,它不應該通過這種陰謀。 到目前為止,經過十年的嘗試,我並沒有說服人們這些東西需要修復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM