真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle游標怎么調(diào)用 Oracle 游標

如何使用oracle中的游標

三步吧,首先先定義一個游標 cursor 然后下面用的時候open 這個游標,循環(huán)使用完了之后close就可以 了

成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站設計與策劃設計,景縣網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:景縣等地區(qū)。景縣做網(wǎng)站價格咨詢:028-86922220

游標是什么?ORACLE是怎樣使用游標的?舉例說明!

游標是什么

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

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

游標的分類

顯式游標和隱式游標

顯式游標的使用需要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是參數(shù)

3.

讀取數(shù)據(jù)

fetch

mycur

into

varno,

varprice;

4.

關閉游標

close

mycur;

游標的屬性

oracle

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

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

%FOUND

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

%ROWCOUNT返回當前位置為止游標讀取的記錄行數(shù)。

示例

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語言中的結構體類似,是由一組數(shù)據(jù)項構成的邏輯單元。

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

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

循環(huán)

游標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語句,否則會產(chǎn)生錯誤。

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;

oracle中游標的作用有哪些?什么情況下使用?

存儲過程中查詢語句如何返回多行結果?我們知道,如果存儲過程中查詢語句有多行結果輸出,會報錯。若想讓存儲過程中的查詢語句返回多行結果不報錯,則需要使用游標來實現(xiàn)。本例主要也是用來熟悉存儲過程中游標的簡單使用方法:

SET SERVEROUTPUT ON;

create or replace procedure proc_salary is

--定義變量

v_empno emp.empno%TYPE;

v_ename emp.ename%TYPE;

v_sal emp.sal%TYPE; ?

--定義游標

CURSOR emp_cursor IS ?SELECT empno, ename, sal from emp;

BEGIN--循環(huán)開始

LOOP

IF NOT emp_cursor%ISOPEN ?THEN

OPEN emp_cursor; ?END IF;

FETCH emp_cursor INTO ?v_empno, v_ename, v_sal;

--退出循環(huán)的條件

EXIT WHEN emp_cursor%NOTFOUND OR emp_cursor%NOTFOUND IS NULL;

dbms_output.put_line('員工編號為' || v_empno || '的' || v_ename || '薪水為:' || v_sal);

END LOOP;END;

/

oracle游標怎么使用?創(chuàng)建完了 怎么用?

For 循環(huán)游標

(1)定義游標

(2)定義游標變量

(3)使用for循環(huán)來使用這個游標

declare

--類型定義

cursor c_job

is

select empno,ename,job,sal

from emp

where job='MANAGER';

--定義一個游標變量v_cinfo c_emp%ROWTYPE ,該類型為游標c_emp中的一行數(shù)據(jù)類型

c_row c_job%rowtype;

begin

for c_row in c_job loop

dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);

end loop;

end;

Fetch游標

使用的時候必須要明確的打開和關閉

declare

--類型定義

cursor c_job

is

select empno,ename,job,sal

from emp

where job='MANAGER';

--定義一個游標變量

c_row c_job%rowtype;

begin

open c_job;

loop

--提取一行數(shù)據(jù)到c_row

fetch c_job into c_row;

--判讀是否提取到值,沒取到值就退出

--取到值c_job%notfound 是false

--取不到值c_job%notfound 是true

exit when c_job%notfound;

dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);

end loop;

--關閉游標

close c_job;

end;


當前文章:oracle游標怎么調(diào)用 Oracle 游標
鏈接URL:http://weahome.cn/article/hgogoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部