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

2025-07-12 13:45:04 字數 3522 閱讀 1395

1樓:網友

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

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

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

oracle資料庫分頁查詢,

2樓:齊文

rownum是偽列,只能<=,不能》=

所以需要給rownum起個別名,變成邏輯列後來比較select *

from (select rownum as num,a.* from (select * from test order by 1 asc) a) t

where >=20

and <=40;

你寫的可以修改為:

select *

from (select rownum as num,a.* from (select * from test) a where rownum <= 40)

where num >= 20;

3樓:七老股東吳老師

你也可以用擷取id的方法。

select * from test t,(select tid,rownum as num from test) b where and b,num between 20 and 40;

4樓:網友

在最外面的rownum起乙個別名,這樣就沒有問題了,你試一下。這個一定要起別名的,要不然就會出問題,至於為什麼,你自己好好想想吧。

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

5樓:網友

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

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

6樓:我又強力了

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

不用賦值給空。

oracle儲存過程 查詢

7樓:我在哪我是誰

儲存過程裡面不可以結果取出來放那就算,你得有變數去儲存結果才行。

我給你個簡單例子:

create or replace procedure wy_temp

is rst emp%rowtype;

beginselect * into rst from emp where rownum=1;

end wy_temp;

這只是個簡單例子,我只取了一條記錄。

別的情況同理。反正就是這樣個道理了。

8樓:i_am內幕帝

要使用遊標。

create or replace procedure wy_temp

iscursor c is select * from we_temp1;--將查詢的結果儲存在遊標c中。

beginfor v_temp in c loop --對遊標c進行迴圈--你想做的一些事情。

end loop;

end;如果想使用結果,就要設定傳出引數。

如何在oracle的儲存過程中建表啊?

9樓:網友

執行建表等 ddl 語句在 plsql 儲存過程中要用動態 sql 語句來執行, 如:

execute immediate 'create table ..';

10樓:網友

可以在儲存過程中使用execute immediate 'sql';子句來建立表,例如execute immediate 'create table test(id int)';

oracle中建儲存過程

11樓:網友

樓主的要求,簡單的查詢處理就可以啦。

select

fromarticle

wherepublished >= to_date('2010-07-01', 'yyyy-mm-dd')

and published <= to_date('2010-09-01', 'yyyy-mm-dd')

如果一定要寫個儲存過程,方便以後呼叫的話。

對於 oracle 需要通過 返回乙個遊標來處理。

sql> create or replace package pkg_helloworld as

2 --定義ref cursor型別。

3 type myrctype is ref cursor;

4 --函式申明。

5 function gethelloworld return myrctype;

6 end pkg_helloworld;

package created.

sql> create or replace package body pkg_helloworld as

2 function gethelloworld return myrctype

3 is4 return_cursor myrctype;

5 begin

6 open return_cursor for 'select ''hello'' as a, ''world'' as b from dual

7 return return_cursor;

8 end gethelloworld;

9 end pkg_helloworld;

package body created.

sql> select pkg_ from dual;

gethelloworld

cursor statement : 1

cursor statement : 1a b

hello world

注意:這個例子, 是乙個 oracle 的package 下的 函式, 返回的是 結果集合。

這個例子只是為了演示 返回結果集, 因此沒有提供引數。

這個例子是乙個 function

不是 procedure

如果一定要用 procedure, 請自己設定乙個 引數 為 output

12樓:520江南之鄉

樓主這個需要建立儲存過程嗎?

如果想得到查詢結果,用樓的方法就可以了:

select * from articlewhere

published >= to_date('20100701', 'yyyymmdd')

and published <= to_date('20100901', 'yyyymmdd');

如果你一定要使用儲存過程的話:

create or replace procedure 過程名(qssj varchar2(16),jssj varc)

oracle中關於查詢速度

不會的,查詢view相當於重新執行建立view的語句,和直接拿語句查詢沒有區別的。兩者沒有任何差別。如果你每次查詢的結果,只佔整張表的 左右 這個沒有準確的說法,完全是根據經驗 那麼你可以在你使用的條件欄位上建立索引。如果大於這個比例,那麼還是不要建索引全表掃瞄吧,建了索引反而會更慢。如果你用的是o...

中插入的分頁符怎麼撤銷,Word中插入的分頁符怎麼撤銷?

word顯示分頁符是因為勾選了選項 顯示 顯示所有標記 的選項被勾選,只要取消此勾選即可。具體操作如下 以word 2007為例,如下圖所示分頁符 2.點選office圖示 3.選擇 word選型 選單 4.彈出 word 選項 選項卡,點選 顯示 5.去掉 顯示所有格式標記 點選確定 6.分頁識別...

oracle中的convert函式的功能和引數列表

convert函式的功能是將源字串c1 從一個語言字符集set2轉換到另一個目的set1字符集 語法 convert c1,set1,set2 引數 c1,字串,set1,set2為字元型引數 返回 字串 示例 select convert strutz we8hp f7dec conversion...