包的定义:create or replace package Test is
TYPE RSCUROSR IS REF CURSOR;
procedure test(v_sql in varchar2,mycs out RSCUROSR )
end Test; 包的body代码如下:
create or replace package body Test is
procedure test(v_sql in varchar2,mycs out RSCUROSR )
IS strV_SQL varchar2(4000);
BEGIN
strV_SQL :='select * from table where || v_sql||'';
OPEN R_MYCS FOR
strV_SQL;
END;end Test;现在我向v_sql传入的是带有like '% %'的字符串来进行模糊查询要怎么做呢?比如v_sql=tableName like '%name%'
请高手指点。
TYPE RSCUROSR IS REF CURSOR;
procedure test(v_sql in varchar2,mycs out RSCUROSR )
end Test; 包的body代码如下:
create or replace package body Test is
procedure test(v_sql in varchar2,mycs out RSCUROSR )
IS strV_SQL varchar2(4000);
BEGIN
strV_SQL :='select * from table where || v_sql||'';
OPEN R_MYCS FOR
strV_SQL;
END;end Test;现在我向v_sql传入的是带有like '% %'的字符串来进行模糊查询要怎么做呢?比如v_sql=tableName like '%name%'
请高手指点。
解决方案 »
- oracle的session过多问题
- 怎么将数据存入有一个变量的类型为blob的数据库中
- solaris下恢复oracle
- 请大家帮忙看看这样的sql有没有办法写出来,谢谢!
- 紧急求救:ORA-00093: shared_pool_reserved_size must be between 5000 and 8388608错误
- 关于oracle里查询
- 求教一个SQL语句的写法,去掉一半数据记录,在线等
- 紧急:我不小心用TRUNCATE 命令把几千万的数据给干掉了
- 请大家说一下平时使用ORACLE的那种备份方式?
- STARTUP MOUNT 與 OPEN 問題
- 求一条sql语句,在线等.....
- 奇怪了,为什么oracle在有外键约束的子表中插入数据,不插入外键字段值也可以正常添加数据,为什么呢?
create table ttt( cname varchar2(100) );
insert into ttt
select '1123222' from dual union all
select '12234123' from dual union all
select '123' from dual union all
select 'fas' from dual union all
select 'fdsa' from dual;
--存储过程
create or replace procedure sp_aa( s varchar2 )
is
sqlstr varchar2(1000);
i int;
begin
--s:='cname like ''%123%''';
sqlstr:='select count(*) from ttt where '||s;
execute immediate sqlstr into i;
dbms_output.put_line( i );
end;
--测试
declare
s varchar2(100);
begin
s:='cname like ''%123%''';
sp_aa( s );
end;
--输出结果
3
is
sqlstr varchar2(1000);
i int;
begin
--s:='cname like ''%123%''';
sqlstr:='select * from ttt where '||s;
open rst for sqlstr;
end;
你使用这个再测试一下,你用我上边的测试数据