Oracle入门(十四.13)之带参数的游标
生活随笔
收集整理的這篇文章主要介紹了
Oracle入门(十四.13)之带参数的游标
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、帶參數的游標
????參數是一個變量,其名稱用于游標聲明中。 當游標打開時,參數值被傳遞給Oracle服務器,Oracle服務器使用它來決定要將哪些行檢索到光標的活動集中。
????這意味著您可以在塊中多次打開和關閉顯式光標,或者在同一個塊的不同執行中打開和關閉顯式光標,每次都返回一個不同的活動集。
????考慮將任何region_id傳遞給游標的示例,并返回該區域中國家/地區的名稱。
例子
二、參數游標用法
(1)使用參數語法定義游標
在游標聲明中命名的每個參數在OPEN語句中必須具有對應的值。 參數數據類型與標量變量的數據類型相同,但不給它們大小。 參數名稱在游標SELECT語句的WHERE子句中使用。
CURSOR cursor_name[(parameter_name datatype, ...)] ISselect_statement;在語法中:cursor_name是聲明的游標的PL / SQL標識符
?parameter_name是參數的名稱
?數據類型是參數的標量數據類型
?select_statement是一個沒有INTO子句的SELECT語句
用參數打開游標
以下是用參數打開游標的語法:
OPEN cursor_name(parameter_value,.....) ;(2)帶參數的游標
游標打開時將參數值傳遞給游標。 因此,您可以多次打開一個顯式光標并每次獲取一個不同的活動集。 在以下示例中,游標會多次打開。具有參數的光標的另一個例子
(3)光標FOR循環參數
如果需要,我們可以使用游標FOR循環:
DECLARECURSOR emp_cursor (p_deptno NUMBER) ISSELECT employee_id, last_nameFROM employeesWHERE department_id = p_deptno; BEGINFOR v_emp_record IN emp_cursor(10) LOOP….END LOOP; END;(4)具有多個參數的游標
在下面的例子中,聲明了一個游標并用兩個參數調用:
DECLARECURSOR countrycursor2 (p_region_id NUMBER,p_population NUMBER) ISSELECT country_id, country_name, populationFROM wf_countriesWHERE region_id = p_region_idOR population > p_population; BEGINFOR v_country_record IN countrycursor2(145,10000000) LOOP DBMS_OUTPUT.PUT_LINE(v_country_record.country_id ||' '|| v_country_record. country_name||' '|| v_country_record.population); END LOOP; END;另一個例子該光標可以獲取所有收入超過10000美元的IT程序員。
DECLARECURSOR emp_cursor3 (p_job VARCHAR2,p_salary NUMBER) ISSELECT employee_id, last_nameFROM employeesWHERE job_id = p_jobAND salary > p_salary; BEGINFOR v_emp_record IN emp_cursor3('IT_PROG', 10000) LOOPDBMS_OUTPUT.PUT_LINE(v_emp_record.employee_id ||' ' ||v_emp_record.last_name);END LOOP; END;
總結
以上是生活随笔為你收集整理的Oracle入门(十四.13)之带参数的游标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: csgo怎么说话 csgo怎么语音交流
- 下一篇: 王者荣耀超长名字 王者荣耀超长名字大全