--3 使用帶引數的靜態游標查詢某工資區間的員工資訊(最高工資,最低工資是引數)
declare
va_emp emp%rowtype;
va_min emp.sal%type:=&最低工資;
va_max emp.sal%type:=&最高工資;
cursor va_empcur(va_mingsal emp.sal%type,va_maxsal emp.sal%type) is select * from emp where sal>va_mingsal and sal2 and a.r<10;
--select * from ( select emp.*, rownum rn from emp)a where a.rn <=2 and a.rn >= 0
create or replace procedure fenyeemp(
pageindex number,
pagesize number,
totalpage out number,
pageresultset out sys_refcursor,
errorcode out varchar2,
errorinfo out varchar2)is
rowss number(5);
page_exp exception;
begin
select count(0) into rowss from emp;
totalpage:=ceil(rowss/ pagesize);
if pageindex<1 or pageindex>totalpage then
raise page_exp;
end if;
open pageresultset for select a.ename,a.job from (select e.*,rownum r from emp e) a where a.r>(pageindex-1)*pagesize and a.rerrorcode:='0';
errorinfo:='cg';
exception
when page_exp then
errorcode:='1';
errorinfo:='sb';
when others then
errorcode:='2';
errorinfo:='qt';
end;
--2:呼叫該分頁儲存過程
declare
page number(10):=&請輸入頁碼;
pagesize number(10):=&請輸入頁碼條數;
page_yb sys_refcursor;
rowss number(10);
emp_row emp%rowtype;
ename emp.ename%type;
jobs emp.job%type;
begin
fenyeemp(page,pagesize,rowss,page_yb);
loop
fetch page_yb into ename,jobs;
exit when page_yb%notfound;
dbms_output.put_line(ename||'--'||jobs);
end loop;
end;
ORACLE靜態游標
游標 cursor 是系統為使用者開設的乙個 資料緩衝區 存放sql語句的執行結果。每個游標區都有乙個名字。使用者可以用sql語句逐一從游標中獲取記錄,並賦給主變數,交由主語言進一步處理。游標,從declare open fetch close是乙個完整過程。以下sql語句均在oracle中的sco...
oracle動態游標
declare v col1 varchar2 254 v col2 varchar2 254 v sql varchar2 1024 type my cursor is ref cursor v cur my cursor begin v sql select 1,2 from dual wher...
oracle 動態游標
今天寫了個動態游標 使用傳入引數 關於游標分類以及用法 思路就是先拼好sql 然後開動態游標 oralce10g也支援正規表示式 呵呵 剛剛好可以實現動態傳入引數 procedure tj pda testdata v indicator in varchar is type rc is ref c...