问题类似于在 SQL * PLUS中* 使用 LIKE ,其中select语句包含 LIKE 子句,如下所示: ***
select * from sometable where somecolumn LIKE 'something%';
如何在游标中使用相同的内容?我尝试使用以下内容:
cursor c is select * from sometable where somecolumn like 'something%';
同上
编辑:我需要获取 一些 参数,也就是说,在存储过程中执行select语句。
编辑2:
create procedure proc1 (search VARCHAR) is cursor c is select student_name from students where student_name like 'search%';
-我知道使用“搜索%”会检索包含“关键搜索”的学生姓名,但是还有其他使用这种变量的方法。
do something; end;
简而言之,我需要选择包含作为参数传递的值的学生姓名。这可能不是全名,并且足以在like子句中使用。
根据我对您问题的理解,您search在引号中使用了变量。将您的变量放在引号之外,例如:
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;