国产探花免费观看_亚洲丰满少妇自慰呻吟_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;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 竹溪县| 油尖旺区| 涟水县| 永昌县| 泰安市| 台南市| 丁青县| 龙岩市| 固安县| 特克斯县| 二连浩特市| 水城县| 通榆县| 贺州市| 屏山县| 榕江县| 和硕县| 兴宁市| 平舆县| 宝山区| 博白县| 霍林郭勒市| 建德市| 嘉鱼县| 皮山县| 郧西县| 桓台县| 栖霞市| 湘潭县| 彭泽县| 临城县| 商都县| 颍上县| 临沂市| 新丰县| 同江市| 耒阳市| 武陟县| 山阳县| 水城县| 东乡族自治县|