国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLEPL/SQL基礎--游標的學習來源

2024-08-29 13:53:46
字體:
來源:轉載
供稿:網友
OraclePL/SQL基礎--游標的學習來源:

    游標字面理解就是游動的光標。

    用數據庫語言來描述:游標是映射在結果集中一行數據上的位置實體,有了游標用戶就可以訪問結果集中的任意一行數據了,將游標放置到某行后,即可對該行數據進行操作,例如提取當前行的數據等等。

    游標的分類:

    顯式游標和隱式游標
    顯示游標的使用需要4步:

    1.聲明游標

CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic  
where com_no = vartype;
    2.打開游標

open mycur(000627) 注:000627:參數

    3.讀取數據

fetch mycur into varno,varPRice;

    4.關閉游標

close mycur;

    游標的屬性

    oracle 游標有4個屬性: %ISOPEN , %FOUND , %NOTFOUND, %ROWCOUNT

    %ISOPEN 判斷游標是否被打開,如果打開%ISOPEN 等于true,否則等于false

    %FOUND %NOTFOUND 判斷游標所在的行是否有效,如果有效,則%FOUNDD等于true,否則等于false

    %ROWCOUNT 返回當前位置為止游標讀取的記錄行數。
    示例:

set serveroutput on;
declare
varno varchar2(20);
varprice varchar2(20);

CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic  
where com_no = vartype;
begin

if mycur%isopen = false then

open mycur(000627);
end if;
fetch mycur into varno,varprice;
while mycur%found  
loop
dbms_output.put_line(varno||’,’||varprice);
if mycur%rowcount=2 then
exit;
end if;
fetch mycur into varno,varprice;
end loop;
close mycur;

end;
pl/sql 記錄 的結構和c語言中的結構體類似,是由一組數據項構成的邏輯單元。

    pl/sql 記錄并不保存再數據庫中,它與變量一樣,保存再內存空間中,在使用記錄時候,要首先定義記錄結構,然后聲明記錄變量。可以把pl/sql記錄看作是一個用戶自定義的數據類型。
set serveroutput on;
declare

type person is record
(
empno cus_emp_basic.emp_no%type,
empzc cus_emp_basic.emp_zc%type);

person1 person;

cursor mycur(vartype number)is
select emp_no,emp_zc from cus_emp_basic  
where com_no=vartype;

begin
if mycur%isopen = false then
open mycur(000627);
end if;

loop
fetch mycur into person1;
exit when mycur%notfound;
dbms_output.put_line(’雇員編號:’||person1.empno||’,地址:’||person1.empzc);
end loop;
close mycur;
end;


    典型游標for 循環

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


set serveroutput on;
declare


cursor mycur(vartype number)is
select emp_no,emp_zc from cus_emp_basic  
where com_no=vartype;

begin

for person in mycur(000627) loop

dbms_output.put_line(’雇員編號:’||person.emp_no||’,地址:’||person.emp_zc);
end loop;

end;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万盛区| 庆阳市| 华池县| 南丰县| 绥棱县| 昌平区| 江达县| 霍林郭勒市| 韶关市| 南皮县| 英德市| 桑日县| 崇阳县| 新乡市| 威海市| 五大连池市| 炉霍县| 景谷| 揭东县| 甘孜| 安徽省| 保德县| 库尔勒市| 嘉鱼县| 正定县| 马鞍山市| 长宁县| 仁寿县| 师宗县| 洛南县| 民丰县| 陕西省| 抚松县| 延寿县| 兰州市| 天长市| 兰西县| 辽宁省| 崇礼县| 扎兰屯市| 黄梅县|