oracle 寫乙個用於分頁的儲存過程 呼叫的時候可以傳參

2025-07-21 23:15:12 字數 4101 閱讀 8590

1樓:網友

select * from (select a.*,rownum r from (select * from table_a) a where rownum<=b) where r>=a

該sql語句實現了分頁查詢。

其中table_a表示你要查詢的那張表,r>=a,rownum《咐野=b中的a和b表示需要查詢薯如的記錄的起止數。衡手喊。

需要做分頁的話,上面的b可以改成currentpage*pagecount,a可以改成(currentpage-1)*pagecount, currentpage表示當前頁數,pagecount表示總頁數。

2樓:網友

你是要交任賀枝務還是業務中真實實現?

fyi。不需搏拍態要用到procedure,sql就能夠實現,將具體的數值改為繫結變數就行 。或基源者你硬要做成procedure,改一改格式就行。

jsp分頁實現 oracle 傳參

3樓:網友

其實分頁不用做得這麻煩,給你看看乙個現成的分頁外掛程式吧。

可以整合到任何框架中。

這個分頁類很流行,這個是示例。

oracle 儲存過程分頁

4樓:網友

首先 oracle 儲存過程,沒法簡單一句 sql 語句,返回結果集。

可以採取函式返回遊標的方式來處理。

oracle 函式 例子。

5樓:匿名使用者

儲存過程是可以返回資料集的,用乙個遊標。

還有你的問題我都不怎麼清楚。

6樓:網友

select資料集,如樓上所說,應該是遊標。如果是resultset,那麼就該用程式語言進行開發。

乙個oracle的分頁查詢儲存過程,執行的時候報錯,如下:

7樓:網友

預設值不能給 '', 因為oracle中 '' is null

不賦值的話,就是 '' 了。所以這一行的,報錯是說: 冒號出現沒有起到應有的作用。

8樓:我又強力了

v_sql varchar2(1000) := ''; -sql語句。

不用賦值給空。

oracle儲存過程傳參的問題?

9樓:網友

不行,可以宣告乙個相同型別的變數賦值再使用。

10樓:網友

你定義乙個變數等於你要查詢的sql語句。

假設tablename 傳入的是這個。

tablename:='controlset';

sqls:='select * from '||tablename||'';

execute immediate sqls ;

oracle 儲存過程中呼叫儲存過程

11樓:網友

乙個帶引數的儲存過程。

sql> create or replace procedure helloworld1 (

2 p_user_name varchar2

3 ) as

4 begin

5 dbms_'hello ' ||p_user_name ||'!');

6 end helloworld1;

procedure created.

sql> create or replace procedure callhelloworld1 (

2 p_user varchar2

3 ) as

4 begin

5 --呼叫儲存過程的 儲存過程。

6 helloworld1(p_user);

7 end callhelloworld1;

procedure created.

執行sql> set serveroutput on

sql> exec callhelloworld1( 'tom' );

hello tom!

pl/sql procedure successfully completed.

12樓:計劃書

sql>create or replace procedure pro_square(

num in out number, //計算它的平方或平方根,這是乙個」in out「引數。

flag in boolean) is //計算平方或平方根的標識,這是乙個「in"引數。

i int:=2; //表示計算平方,這是乙個內部變數。

beginif flag then //若為真。

num:=power(num,i); //計算平方。

elsenum:=sqrt(num); //計算平方根。

end if;

end;呼叫儲存過程:

declare

var_number number;

var_temp number;

boo_flag boolean;

beginvar_temp:=3;

var_number:=var_temp;

boo_flag:=false;

pro_square(var_number,boo_flag);

if boo_flag then

dbms_ |'的平方是:'||'var_number');

elsedbms_ |'平方根是:'||'var_number');

end if;

end;

oracle中建分頁查詢的儲存過程

13樓:網友

有一種辦法,oracle中,可以顯示rownbr如:select * from table_name where rownbr>=2 and rownbr>=10;

則最後顯示的是第緩氏春二到第十行資料。

所以你可以擾耐把rownbr>=2和rownbr>=10設定成儲存過程中的乙個變數,執行儲存過程時輸入核皮起始行數和結束行數。

oracle怎麼實現分頁

14樓:是十七十七

因為oracle資料庫沒有top關鍵字,所以這裡就不能夠像微軟的資料據那樣操作,這裡有兩種方法:

一種是利用相反的。

pagesize:每頁顯示的記錄數。

currentpage:當前頁號。

資料表的名字是:components

索引主鍵字是:id

select * from components where id not in(select id from components where rownum<=(pagesize*(currentpage-1)))and rownum<=pagesize order by id;

如下例:select * from components where id not in(select id from components where rownum<=100) and rownum<=10 order by id;

從101到記錄開始選擇,選擇前面10條。

使用minus,即中文的意思就是減去,呵呵,這語句非常的有意思,也非常好記。

select * from components where rownum<=(pagesize*(currentpage-1)) minus select * from components where rownum<=(pagesize*(currentpage-2));

如例:select * from components where rownum<=10 minus select * from

一種是利用oracle的rownum,這個是oracle查詢自動返回的序號,一般不顯示,但是可以通過select rownum from [表名],可以看到,是從1到當前的記錄總數。

select * from (select rownum tid,components.* from components where rownum<=100) where tid<=10;

乙個關於oracle在dos裡面執行的問題

在做什麼操作時報錯 一般情況時 號資料檔案 e 不在了 看看是不是被誤刪除了 如襪帆伍果有備份的話可轎纖以進行完告或全 不完全恢復 如果沒有 可以將這個檔案在oracle中刪除 似乎是在mount狀態下。字畢好數太多無拿數正法釋出,參消悔看這裡。請襲氏舉參核鍵考 拍碧。oracle為什麼一定要用do...

家庭月應該存多少錢,一個家庭一個月應該存多少錢

看你得收入吧,拋去一切花費,然後給自己規定每個月必須存多少 小康家庭每年存三至五萬 我周邊情況是這樣的,大家消費水平並不高,但年關消費多 現實的說就是存夠養老金就行了 縣城每月1500大城市不知 應該跟你的收入 所在城市的消費水平有關係!根據你的收入水平來定吧 家庭一個月開銷多少算正常?我覺得我一個...

照樣子寫詞語,照樣子寫詞語一個一個

一隻一隻,一本一本,一條一條 打掃打掃.整理整理 一顆一顆,一雙一雙,一隊一隊,啊 一顆一顆,一粒一粒,一束一束 一隻一隻,一本一本,一條一條 打掃打掃.整理整理 一些一些,一年一年,一朵一朵 一堆一堆,一片一片,一隻一隻 一個一個照樣子寫詞語 一塊一塊 一簇一簇 一層一層 一窩一窩 一堆 一堆 一...