理想的には、これをクエリ内に保持したいのですが、それが不可能な場合は、操作する webapp レベルがないため、パッケージが機能すると思います。
私がやりたいのは、Oracle DBの場合、where
すべての行にワイルドカードを含む部分文字列が格納されている1つの属性を持つテーブルの各行に対して、検索文字列に追加するように、句でクエリを作成/実行することですのためにcontains
。私の知る限り、クエリ内で実際にループを実行することはできないため、カーソルが必要になりますが、カーソルを使用したことはありません。これは、私がやろうとしていることをより視覚的に表現したものです(ループロジックを使用して):
Table1
属性: 名
ジョン・
ジョー・
ジェーン・
ジョセフィン
Table2
属性: 部分文字列
%se%
%h%i%
制約により、常に少なくとも 1 つの行が保証されている場合
疑似クエリ
SELECT
table1.firstname
FROM
table1
WHERE CONTAINS(table1.firstname, '"table2.row1"
IF(count(table2.substrings) > 1)
FOR table2.row = 2 TO count(table2.substrings)
(
+ " OR row.substrings"
)
', 1) > 0
( SQL に "LIKE" と "IN" の組み合わせはありますか? にCONTAINS
基づく構文)