成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實現(xiàn)Oracle游標的動態(tài)形式講解

數(shù)據(jù)庫 Oracle
以下的文章主要是對實現(xiàn)Oracle游標的動態(tài)形式的正確講解,我們以假設實例的方式來講述其實際的操作步驟,以下就是文章的具體操作內容。

在開發(fā)過程的中,我們經(jīng)常要用到Oracle游標來進行相關的統(tǒng)計(不用臨時表)并且返回其統(tǒng)計結果,但是游標的后面SQL語句往往是動態(tài)的,例如select * from tablename where ?order ?."?"代表條件,這樣該如何處理呢?

在同事的幫助下我實踐了一下。總結出來。

假設tablename表中有field如下:

 

  1. field1 varchar2(50)   
  2. field2 Varchar2(50)   
  3. field3 Varchar(50)   
  4. field4 varchar2(50)   
  5. field5 varchar2(20)   
  6. field6 float,   
  7. field7 float   

 

1.定義游標

 

  1. create or replace package RefCursor is   
  2. -- Author : Ricky   
  3. -- Created 2003-9-1 14:08:45   
  4. -- Purpose :   
  5. -- Public type declarations   
  6. type t_RefCursor is ref cursor;   
  7. end RefCursor; 

2.創(chuàng)建類型

創(chuàng)建的類型與tablename中表的fields一致,當然也要看你實際是否要統(tǒng)計所有的fields.

 

  1. create or replace type TableType as object   
  2.  (   
  3. -- Author : Ricky   
  4. -- Created : 2003-8-25 9:12:08   
  5. -- Purpose :   
  6. -- Attributes   
  7. field1 varchar2(50),   
  8. field2 Varchar2(50),   
  9. field3 Varchar(50),   
  10. field4 varchar2(50),   
  11. field5 varchar2(20),   
  12. field6 float,   
  13. field7 float   
  14.  );  

3.創(chuàng)建表類型

 

  1. create or replace type TableTypeList as table of TableType;  

4.在存儲過程或者函數(shù)中使用,下面在函數(shù)中使用(存儲過程中不能用return一個表結構,要用到臨時表)

  1. CREATE OR REPLACE FUNCTION "TEST" (   
  2. return TableTypeList pipelined as   
  3. begin   
  4. v_Cur RefCursor.t_Refcursor;   
  5. v_SQLStatement string(10000);   
  6. v_Table tablename%rowtype;   
  7. tmp1 tablename.field1%Type;   
  8. tmp2 tablename.field2%Type;   
  9. tmp3 tablename.field3%Type;   
  10. tmp4 tablename.field4%Type;   
  11. tmp5 tablename.field5%Type;   
  12. tmp6 tablename.field6%Type;   
  13. tmp7 tablename.field6%Type;   
  14. v_SQLStatement := 'Select * From tablename where field1='1' order by field1';   
  15. open v_Cur for v_SQLStatement;   
  16. loop   

這里是循環(huán)過程
 

  1. fetch v_Cur into v_Comm;   
  2. exit when v_CommCur%notfound;  

這里是你要處理的統(tǒng)計過程,中間的過程我沒有做統(tǒng)計,各位在實踐中按需要自己添加。
 

  1. field1 = v_Cur.field1;   
  2. field2 = v_Cur.field2;   
  3. field3 = v_Cur.field3;   
  4. field4 = v_Cur.field4;   
  5. field5 = v_Cur.field5;   
  6. field6 = v_Cur.field6;   
  7. field7 = v_Cur.field7;   
  8. v_Table = TableType(field1,   
  9. field2,   
  10. field3,   
  11. field4,   
  12. field5,   
  13. field6,   
  14. field7)   
  15. pipe row(v_Table);   
  16. end loop   
  17. end;  

以上的相關內容就是對Oracle游標動態(tài)形式的實現(xiàn)的介紹,望你能有所收獲。

【編輯推薦】

  1. 對Oracle 11g中的XML正確理解
  2. win2000企業(yè)版下正確卸載Oracle 9i
  3. Oracle安全策略在MIS系統(tǒng)實例中的體現(xiàn)
  4. 安裝Oracle 10g 在redhat linux 的正確方案
  5. Oracle 10G數(shù)據(jù)庫中軟硬件環(huán)境有哪些要求?
責任編輯:佚名 來源: 賽迪網(wǎng)
相關推薦

2010-07-01 14:36:34

SQL Server動

2010-04-21 15:02:50

Oracle使用游標

2010-04-21 15:10:35

Oracle游標

2010-05-07 12:07:08

Oracle 多層游標

2010-04-21 15:52:45

Oracle游標

2010-09-01 15:09:41

DB2動態(tài)游標

2010-09-01 15:15:20

DB2動態(tài)游標

2022-05-11 15:06:02

MySQL游標SQL

2010-05-26 16:41:09

MySQL 游標

2011-07-29 10:36:43

游標Oracle數(shù)據(jù)庫

2010-09-10 16:20:10

SQL函數(shù)

2010-05-31 17:06:35

MySQL游標

2010-09-08 09:11:42

SQL游標語法

2010-11-16 15:40:21

oracle游標

2010-08-05 14:24:37

DB2存儲過程

2010-11-16 15:23:28

Oracle游標

2010-07-14 15:32:28

SQL Server

2010-11-16 15:11:52

Oracle隱式游標

2010-10-09 16:41:54

MYSQL存儲過程

2011-04-15 13:12:08

DB2游標
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品女人天堂av | 精品视频一区二区三区在线观看 | 精品亚洲国产成av人片传媒 | 国产在线视频在线观看 | 欧美亚洲视频在线观看 | 亚洲在线高清 | 五月婷婷导航 | 日韩国产一区二区三区 | 精品在线一区 | 性视频一区 | 欧美自拍一区 | 欧美精品99| av在线一区二区 | 情侣黄网站免费看 | 亚洲性在线 | 在线观看免费观看在线91 | 日日噜噜夜夜爽爽狠狠 | 欧美一二三区 | 九九热免费看 | 三级视频国产 | 在线一区视频 | 国产一区二区三区免费 | 国精品一区二区 | 久久在线 | 精品国产一区一区二区三亚瑟 | 中文字幕在线免费视频 | 国产精品久久久久久久久久久久 | 365夜爽爽欧美性午夜免费视频 | av香蕉| 国产精品一区二区三区在线播放 | 亚洲精品二区 | 日韩午夜一区二区三区 | 国产成人高清在线观看 | 欧美成人二区 | 日韩中文在线观看 | aa级毛片毛片免费观看久 | 亚洲人成人一区二区在线观看 | 在线观看国产三级 | 天堂在线免费视频 | 中文字幕蜜臀 | 中文av电影 |