質問は[〜#〜] like [〜#〜]をSQL * PLUSで使用するのと似ていますが、selectステートメントには[〜#〜 ] like [〜#〜]句は次のようになります。
select * from sometable where somecolumn LIKE 'something%';
カーソル内で同じように使用できますか?私は以下を使ってみました:
cursor c is select * from sometable where somecolumn like 'something%';
上記と同じ
編集:パラメータとしてsomethingを取得する必要があります。つまり、selectステートメントはストアドプロシージャ内で実行されます。
編集2:
create procedure proc1 (search VARCHAR) is
cursor c is select student_name from students where student_name like 'search%';
-「search%」を使用すると、「キー検索」を含む学生名が取得されますが、そのような変数を使用する他の方法はありますか?.
do something;
end;
つまり、パラメーターとして渡される値を含む学生の名前を選択する必要があります。これは完全な名前ではなく、like句内で使用するのに十分な場合があります。
あなたの問題に対する私の理解に従って、引用符内で変数search
を使用しています。変数を引用符の外に置きます。例:
create or replace procedure PROC1(search VARCHAR2)
IS
cursor test_cur(search IN VARCHAR2)
IS
SELECT student_name
FROM student
WHERE student_name LIKE search||'%'; --you're putting you variable within quotes
v_temp_var student.student_name%TYPE;
BEGIN
OPEN test_cur(search);
LOOP
FETCH test_cur INTO v_temp_var;
EXIT WHEN test_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_temp_var);
END LOOP;
CLOSE test_cur;
END test;