问题类似于使用LIKE in SQL*PLUS,其中 select 语句包含LIKE条款如下:
select * from sometable where somecolumn LIKE 'something%';
如何在游标中使用相同的内容?我尝试使用以下内容:
cursor c is select * from sometable where somecolumn like 'something%';
与上面相同
编辑:我需要得到某物作为参数,这意味着 select 语句在存储过程中执行。
EDIT 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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)