在表中查找满足条件的指定位置的记录

eHuaTian 2009-12-29 09:21:50
对表tableName,有一个字段名为field,当field的值含有fieldValue时,将其查找出来,并取出介于startNum和entNum间的记录给records,SQL语句如何写?我的存储过程定义如下:

procedure getRecordByUUID(tableName in varchar2, field in varchar2,fieldValue in varchar2,startNum in integer,entNum in integer,records out SYS_REFCURSOR) ;
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
duqiangcise 2009-12-30
  • 打赏
  • 举报
回复
procedure getRecordByUUID(tableName in varchar2, field in varchar2,fieldValue in varchar2, 
startNum in integer,entNum in integer,records out SYS_REFCURSOR) is
p_sql varchar2(1000);
p_sql:='select * from (select t.*,rownum rn from '||tableName||' t '||'where '||field||' like '||chr(39)||'%'||fieldValue||'%'||chr(39)||' )where rn>= '||stratNum|| ' and rn <= '||entNum||';';
begin
open records for p_sql;

end;
end plan_searchTable;
eHuaTian 2009-12-30
  • 打赏
  • 举报
回复
我修改了一下,但是存储过程在pl/sql developer中报错。代码如下:

procedure getRecordByUUID(tableName in varchar2, field in varchar2,fieldValue in varchar2,
startNum in integer,entNum in integer,records out SYS_REFCURSOR) is
p_str varchar2(1000);

begin
open records for
select * from (select t.*,rownum rn from ' ||tableName|| ' t
where ' ||field|| ' like '%' ||fieldValue || '%';)
where rn>= stratNum and rn <= entNum;

end;
end plan_searchTable;
eHuaTian 2009-12-30
  • 打赏
  • 举报
回复
谢谢duqiangcise的回答。我在pl/sql developer中测试了一下,报错丫。麻烦一下,能不能再修改修改
duqiangcise 2009-12-29
  • 打赏
  • 举报
回复
procedure getRecordByUUID(tableName in varchar2, field in varchar2,fieldValue in varchar2,startNum in integer,entNum in integer,records out SYS_REFCURSOR)
as

begin
open records for
select *
from
(
select field,rownum row_num from tablename where field like '%'||fieldValue||'%';
)t
where row_num between startNum and entnum;

end;
/
ACMAIN_CHM 2009-12-29
  • 打赏
  • 举报
回复
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧