SET SERVEROUTPUT ON
DECLARE
v_version_string := '2016.0.1|2016.0.2|2016.1|2016.0.4';
v_version := '2016';
BEGIN
IF (INSTR(v_version_string, v_version) > 0) THEN
DBMS_OUTPUT.PUT_LINE('Found');
ELSE
DBMS_OUTPUT.PUT_LINE('Not found');
END IF;
END;
上記は「Found」を返しますが正しいです。しかし、私は正確にとしたいです。 v_versionが2016であれば、|で区切られたv_version_stringに "Not found"を返すようにします。 v_version_stringを分割することなくこれを行うより簡単な方法がありますか?配列をループし、配列をループしますか? v_versionが2016.0.1の場合、上記のスクリプトでは "Found"と表示されます。ただし、2016年には「見つからない」と言わなければなりません。Oracle INSTRは完全一致を検出します
ありがとうございます。
正規表現ですか?試してください: '(2016.0.1 | 2016.0.2 | 2016.1 | 2016.0.4)$' – Laurel