原来一直用sqlserver,最近有一个项目需要转移到oracle上来,在ms sql里,有一个分页的存储过程,
在oracle里不知道有没有(有时候需要去超多的数据里找出十条),还有,oracle里是不是一般不用存储过程返回数据集(为了效率,好像用游标也可以返回),一般都用视图返回数据集吗?
看了一些简单的入门教程,还是一头雾水,呵呵,还望各位不吝赐教
在oracle里不知道有没有(有时候需要去超多的数据里找出十条),还有,oracle里是不是一般不用存储过程返回数据集(为了效率,好像用游标也可以返回),一般都用视图返回数据集吗?
看了一些简单的入门教程,还是一头雾水,呵呵,还望各位不吝赐教
解决方案 »
- oracle 未找到要求的From关键字
- oracle避免子查询的问题
- oracle问题高手帮忙啊
- oracle自联接多次查询进行条件过滤
- 为什么使用SQL*Plus Worksheet执行带有替换变量的SQL语句会出错
- 请问各位 oracle 高手一个问题:在 oracle 中,用什么方法从A表中把数据导入B表最好??
- 如何连接到Oracle enterprise manager console?
- 关于sqlldr的问题~~大家帮忙看看啊~
- oracle (提供重要信息的给分100)
- 咨询下oracle对时区的管理问题
- 无效的 ROWID
- oracle数据库中的数据导出到postgre数据库!求解决方案!
其它不清楚,没做过分页的存储过程
R_C SYS_REFCURSOR;
BEGIN
OPEN R_C FOR
SELECT ename,empno
FROM SCOTT.EMP
WHERE ROWID IN (SELECT RID
FROM (SELECT ROWNUM RNO, ROWID RID
FROM (SELECT ROWID
FROM SCOTT.EMP
ORDER BY ENAME)
WHERE ROWNUM <= E)
WHERE RNO >= S);
RETURN R_C;
END;
/DECLARE
r_c SYS_REFCURSOR;
v_c1 VARCHAR2(10);
v_c2 VARCHAR2(10);
BEGIN
r_c:=gg(2,6);
LOOP
FETCH r_c INTO v_c1,v_c2;
EXIT WHEN r_c%NOTFOUND;
dbms_output.put_Line(v_c1||'-'||v_c2);
END LOOP;
CLOSE r_c;
END;
/输出:
BLAKE-7698
CLARK-7782
FORD-7902
JAMES-7900
JONES-7566
sys_refcursor)
is
begin
select cursor(*) into p_rowset
from (select rownumr,all_objects.* from all_objects where rownum <=
p_max) t
where t.r >= p_min;
end search;
/
show errors