原文地址:Oracle數(shù)據(jù)庫游標使用方法(轉)作者:點點游標有兩種類型:顯式游標和隱式游標。游標一旦打開,數(shù)據(jù)就從數(shù)據(jù)庫中傳送到游標變量中,然后應用程序再從游標變量中分解出需要的數(shù)據(jù),并進行處理。本文中將對游標的使用進行一下講解,希望可以和大家共同學習進步。SQL是用于訪問Oracle數(shù)據(jù)庫的語言,PL/SQL擴展和加強了" />

国产精品久久久久久久久久久久久久_国产肉体ⅹxxx137大胆_国产精品mv_国产日韩中文字幕_国产福利一区二区三区在线视频_中文字幕www_久草最新_日韩av第一页在线播放_青青草在线视频网站_少妇淫片aaaaa毛片叫床爽_成人精品在线视频_超碰97免费观看_毛片一级视频_他掀开裙子把舌头伸进去添视频_天堂一区二区三区在线_黑人日比视频_一区在线看_一区日本_亚洲中文字幕无码中文字_国产一级视频免费看

Oracle數(shù)據(jù)庫游標使用方法

系統(tǒng) 2936 0

[轉載]Oracle數(shù)據(jù)庫游標使用方法(轉) (2010-06-08 21:36:17)

<!-- 正文開始 -->
 游標有兩種類型:顯式游標和隱式游標。游標一旦打開,數(shù)據(jù)就從數(shù)據(jù)庫中傳送到游標變量中,然后應用程序再從游標變量中分解出需要的數(shù)據(jù),并進行處理。本文中將對游標的使用進行一下講解,希望可以和大家共同學習進步。

SQL 是用于訪問 Oracle 數(shù)據(jù)庫的語言,PL/SQL擴展和加強了SQL的功能,它同時引入了更強的程序邏輯, 下面在本文中將對游標的使用進行一下講解,希望可以和大家共同學習進步。

  游標字面理解就是游動的光標。游標是SQL的一個內存工作區(qū),由系統(tǒng)或用戶以變量的形式定義。在某些情況下,需要把數(shù)據(jù)從存放在磁盤的表中調到計算機內存中進行處理,最后將處理結果顯示出來或最終寫回數(shù)據(jù)庫。這樣數(shù)據(jù)處理的速度才會提高,否則頻繁的磁盤數(shù)據(jù)交換會降低效率。用數(shù)據(jù)庫語言來描述游標就是映射在結果集中一行數(shù)據(jù)上的位置實體,有了游標,用戶就可以訪問結果集中的任意一行數(shù)據(jù)了,將游標放置到某行后,即可對該行數(shù)據(jù)進行操作,例如提取當前行的數(shù)據(jù)等。

  游標有兩種類型: 顯式游標和隱式游標。游標一旦打開,數(shù)據(jù)就從數(shù)據(jù)庫中傳送到游標變量中,然后應用程序再從游標變量中分解出需要的數(shù)據(jù),并進行處理。

  當系統(tǒng)使用一個隱式游標時,可以通過隱式游標的屬性來了解操作的狀態(tài)和結果,進而控制程序的流程。隱式游標可以使用名字SQL來訪問,但要注意,通過SQL游標名總是只能訪問前一個處理操作或單行SELECT操作的游標屬性。所以通常在剛剛執(zhí)行完操作之后,立即使用SQL游標名來訪問屬性。游標的屬性有四種,分別是SQL %ISOPEN,SQL %FOUND,SQL %NOTFOUND,SQL %ROWCOUNT。

  SQL%ISOPEN返回的類型為布爾型,判斷游標是否被打開,如果打開%ISOPEN等于true,否則等于false,即執(zhí)行過程中為真,結束后為假。

  SQL%NOTFOUND返回值為布爾型,判斷游標所在的行是否有效,如果有效,則%FOUNDD等于true,否則等于false,即與%FOUND屬性返回值相反。

  SQL%FOUND返回值的類型為布爾型,值為TRUE代表插入 刪除 更新或單行查詢操作成功。

  SQL%ROWCOUNT返回值類型為整型,返回當前位置為止游標讀取的記錄行數(shù),即成功執(zhí)行的數(shù)據(jù)行數(shù)。 示例代碼如下:

setserveroutputon;
  declare
  varnovarchar2(20);
  varpricevarchar2(20);
  CURSOR mycur(vartypenumber) is
  selectemp_no,emp_zcfromcus_emp_basic
  wherecom_no=vartype;
  begin
  ifmycur%isopen=falsethen
  openmycur(043925);
  endif;
  fetchmycurintovarno,varprice;
  whilemycur%found
  loop
  dbms_output.put_line(varno||','||varprice);
  ifmycur%rowcount=2then
  exit;
  endif;
  fetchmycurintovarno,varprice;
  endloop;
  closemycur;
  end;

  記錄并不保存在數(shù)據(jù)庫中,它與變量一樣,保存在內存空間中,在使用記錄時候,要首先定義記錄結構,然后聲明記錄變量。可以把PL/SQL記錄看作是一個用戶自定義的數(shù)據(jù)類型。

  游標for循環(huán)是 顯示 游標(非顯 游標)的一種快捷使用方式,它使用for循環(huán)依次讀取結果集中的行數(shù)據(jù),當form循環(huán)開始時,游標自動打開(不需要open),每循環(huán)一次系統(tǒng)自動讀取游標當前行的數(shù)據(jù)(不需要fetch),當退出for循環(huán)時,游標被自動關閉(不需要使用close)。使用游標for循環(huán)的時候不能使用open語句,fetch語句和close語句,否則會產生錯誤。

setserveroutputon;
  declare
  cursormycur(vartypenumber)is
  selectemp_no,emp_zcfromcus_emp_basic
  wherecom_no=vartype;
  begin
  forpersoninmycur(000627)loop
  dbms_output.put_line('編號:'||person.emp_no||',住址:'||person.emp_zc);
  endloop;
  end;

顯式游標的使用總共分4個步驟:

 1.聲明游標

  在DECLEAR部分按以下格式聲明游標:

  CURSOR 游標名[(參數(shù)1 數(shù)據(jù)類型[參數(shù)2 數(shù)據(jù)類型...])]

  IS SELECT語句;

  參數(shù)是可選部分,所定義的參數(shù)可以出現(xiàn)在SELECT語句的WHERE子句中。如果定義了參數(shù),則必須在打開游標時傳遞相應的實際參數(shù)。

  SELECT語句是對表或視圖的查詢語句,甚至也可以是聯(lián)合查詢。可以帶WHERE條件、ORDER BY或GROUP BY等子句,但不能使用INTO子句。在SELECT語句中可以使用在定義游標之前定義的變量。

  例:

DELCARE
  CURSORC_EMPISSELECTempno,ename,salary
  FROMemp  WHEREsalary>1500
  ORDERBYename;
  ........
  BEGIN

  在游標定義中SELECT語句中不一定非要表可以是視圖,也可以從多個表或視圖中選擇.

2.打開游標

  使用游標中的值之前應該首先打開游標,打開游標初始化查詢處理。打開游標的語法

  OPEN 游標名[(實際參數(shù)1[實際參數(shù)2,...])];

  打開游標時,SELECT語句的查詢結果就被傳送到了游標工作區(qū)。

  例:  OPEN C_EMP;

3.提取數(shù)據(jù)

  從游標得到一行數(shù)據(jù)使用FETCH命令。每一次提取數(shù)據(jù)后,游標都指向結果集的下一

  FETCH cursor_name INTO variable[,variable,...]

  對于SELECT定義的游標的每一列,F(xiàn)ETCH變量列表都應該有一個變量與之相對應,變

在可執(zhí)行部分,按以下格式將游標工作區(qū)中的數(shù)據(jù)取到變量中。提取操作必須在打開游標之后進行。

FETCH 游標名 INTO 變量名1[變量名2,...];

  或

  FETCH 游標名 INTO 記錄變量;

  游標打開后有一個指針指向數(shù)據(jù)區(qū),F(xiàn)ETCH語句一次返回指針所指的一行數(shù)據(jù),要返回多行需重復執(zhí)行,可以使用循環(huán)語句來實現(xiàn)。控制循環(huán)可以通過判斷游標的屬性來進行。

  下面對這兩種格式進行說明:

  第一種格式中的變量名是用來從游標中接收數(shù)據(jù)的變量,需要事先定義。變量的個數(shù)和類型應與SELECT語句中的字段變量的個數(shù)和類型一致。

  第二種格式一次將一行數(shù)據(jù)取到記錄變量中,需要使用%ROWTYPE事先定義記錄變量,這種形式使用起來比較方便,不必分別定義和使用多個變量。

定義記錄變量的方法如下:

  變量名 表名|游標名%ROWTYPE;

  其中的表必須存在,游標名也必須先定義。例如:

create or replace procedure update_regioncity is
v_nUpdated INT := 0;
c_nCommitCount int := 1000;
v_memberid int;
v_mobile int;
v_regioncityid int;
cursor pv_region is
select t.id v_memberid, t.mobile v_mobile
from t_home_members t
where t.mobile is not null;
HO pv_region%ROWTYPE;
begin
open pv_region;
loop
fetch pv_region into HO;
exit when pv_region%notfound;
begin
select r.id into v_regioncityid
from t_sys_mobilearea m, t_sys_regions r
where r.region_name = m.city and m.num = substr( HO.v_mobile , 1, 7);
exception when no_data_found then
v_regioncityid := '';
end;
update t_home_members h set h.regioncity_id=v_regioncityid where h.id=HO.v_memberid;
v_nUpdated := v_nUpdated + 1;
if v_nUpdated = c_nCommitCount then
insert into insert_log(a) values (1);
commit;
end if;
end loop;
CLOSE PV_REGION;
commit;
end update_regioncity;


begin... exception... end 是配套使用的,exception是捕捉begin開始的語句的錯誤的,這樣的話,如果select執(zhí)行沒有結果,那么就會讓v_regioncityid賦值為空

4.關閉游標

  CLOSE 游標名;

  例:

  CLOSE C_EMP;

  顯式游標打開后,必須顯式地關閉。游標一旦關閉,游標占用的資源就被釋放,游標變成無效,必須重新打開才能使用。

  Oracle支持動態(tài)SELECT語句和動態(tài)游標,動態(tài)的方法大大擴展了程序設計的能力。

  對于查詢結果為一行的SELECT語句,可以用動態(tài)生成查詢語句字符串的方法,在程序執(zhí)行階段臨時地生成并執(zhí)行,語法是:

  execute immediate 查詢語句字符串 into 變量1[,變量2,...];

  在變量聲明部分定義的游標是靜態(tài)的,不能在程序運行過程中修改。雖然可以通過參數(shù)傳遞來取得不同的數(shù)據(jù),但還是有很大的局限性。通過采用動態(tài)游標,可以在程序運行階段隨時生成一個查詢語句作為游標。要使用動態(tài)游標需要先定義一個游標類型,然后聲明一個游標變量,游標對應的查詢語句可以在程序的執(zhí)行過程中動態(tài)地說明。

以上部分摘自:http://database.ctocio.com.cn/tips/286/8265286.shtml

Oracle數(shù)據(jù)庫游標使用方法


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |