私はこの奇妙な問題を抱えています。タイプ文字が異なる10列のテーブルがあります。
すべてのレコードを検索し、すべての文字列を持つレコードの ID を返す関数が必要です。レコードを考えてみましょう:
1. a,b,c,d,e
2. a,k,l,h
3. f,t,r,e,w,q
この関数 func(a,d) を呼び出すと 1 が返され、func(e,w,q) を呼び出すと 3 が返されます。
機能は
CREATE OR REPLACE FUNCTION func(ma1 character varying,ma2 character varying,ma3 character varying,ma4 character varying)
DECLARE name numeric;
BEGIN
SELECT Id INTO name from Table WHERE
ma1 IN (col1,col2,col3,col4) AND
ma2 IN (col1,col2,col3,col4) AND
ma3 IN (col1,col2,col3,col4) AND
ma4 IN (col1,col2,col3,col4);
RETURN name;
END;
90% の確率で動作していますが、いくつかの行が見つからないという奇妙な問題があります。
大文字小文字の問題ではありません。
何が間違っている可能性がありますか。64 ビットの win 7 のバージョン 9.1 です。エンコーディングまたは文字列の問題のように感じますが、どこが何なのかわかりません。
//わかりました、問題が見つかりました。それはすべての列に関係しています.24列すべてが入力されている場合、動作していません?? しかし、なぜ ?比較しなければならない列が 24 あるため、制限はありますか //
誰か助けてくれませんか。
ありがとう。