一 游標(biāo)是什么
創(chuàng)新互聯(lián)自2013年起,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元海鹽做網(wǎng)站,已為上家服務(wù),為海鹽各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):13518219792
游標(biāo)字面理解就是游動(dòng)的光標(biāo)。
用數(shù)據(jù)庫(kù)語(yǔ)言來(lái)描述:游標(biāo)是映射在結(jié)果集中一行數(shù)據(jù)上的位置實(shí)體,有了游標(biāo),用戶(hù)就可以訪(fǎng)問(wèn)結(jié)果集中的任意一行數(shù)據(jù)了,將游標(biāo)放置到某行后,即可對(duì)該行數(shù)據(jù)進(jìn)行操作,例如提取當(dāng)前行的數(shù)據(jù)等。
二 游標(biāo)的分類(lèi)
顯式游標(biāo)和隱式游標(biāo)
顯式游標(biāo)的使用需要4步:
1. 聲明游標(biāo)
CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic
where com_no = vartype;
2. 打開(kāi)游標(biāo)
open mycur(000627)
注:000627是參數(shù)
3. 讀取數(shù)據(jù)
fetch mycur into varno, varprice;
4. 關(guān)閉游標(biāo)
close mycur;
三 游標(biāo)的屬性
oracle 游標(biāo)有4個(gè)屬性:%ISOPEN,%FOUND,%NOTFOUND,%ROWCOUNT。
%ISOPEN判斷游標(biāo)是否被打開(kāi),如果打開(kāi)%ISOPEN等于true,否則等于false;
%FOUND %NOTFOUND判斷游標(biāo)所在的行是否有效,如果有效,則%FOUNDD等于true,否則等于false;
%ROWCOUNT返回當(dāng)前位置為止游標(biāo)讀取的記錄行數(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記錄的結(jié)構(gòu)和C語(yǔ)言中的結(jié)構(gòu)體類(lèi)似,是由一組數(shù)據(jù)項(xiàng)構(gòu)成的邏輯單元。
PL/SQL記錄并不保存在數(shù)據(jù)庫(kù)中,它與變量一樣,保存在內(nèi)存空間中,在使用記錄時(shí)候,要首先定義記錄結(jié)構(gòu),然后聲明記錄變量。可以把PL/SQL記錄看作是一個(gè)用戶(hù)自定義的數(shù)據(jù)類(lèi)型。
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('雇員編號(hào):'||person1.empno||',地址:'||person1.empzc);
end loop;
close mycur;
end;
典型游標(biāo)for 循環(huán)
游標(biāo)for循環(huán)示顯示游標(biāo)的一種快捷使用方式,它使用for循環(huán)依次讀取結(jié)果集中的行數(shù)據(jù),當(dāng)form循環(huán)開(kāi)始時(shí),游標(biāo)自動(dòng)打開(kāi)(不需要open),每循環(huán)一次系統(tǒng)自動(dòng)讀取游標(biāo)當(dāng)前行的數(shù)據(jù)(不需要fetch),當(dāng)退出for循環(huán)時(shí),游標(biāo)被自動(dòng)關(guān)閉(不需要使用close)。使用游標(biāo)for循環(huán)的時(shí)候不能使用open語(yǔ)句,fetch語(yǔ)句和close語(yǔ)句,否則會(huì)產(chǎn)生錯(cuò)誤。
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('雇員編號(hào):'||person.emp_no||',地址:'||person.emp_zc);
end loop;
end;
Oracle中的游標(biāo)分為顯示游標(biāo)和隱式游標(biāo)。
顯示游標(biāo):
顯示游標(biāo)是用cursor...is命令定義的游標(biāo),它可以對(duì)查詢(xún)語(yǔ)句(select)返回的多條記錄進(jìn)行處理;顯示游標(biāo)的操作:打開(kāi)游標(biāo)、操作游標(biāo)、關(guān)閉游標(biāo);
隱式游標(biāo):
隱式游標(biāo)是在執(zhí)行插入(insert)、刪除(delete)、修改(update)和返回單條記錄的查詢(xún)(select)語(yǔ)句時(shí)由PL/SQL自動(dòng)定義的。PL/SQL隱式地打開(kāi)SQL游標(biāo),并在它內(nèi)部處理SQL語(yǔ)句,然后關(guān)閉它。
按右ctrl鍵可以切換鍵鼠的兩種狀態(tài),即虛擬機(jī)模式和真實(shí)電腦模式。在運(yùn)行的窗口上方,設(shè)備,安裝增強(qiáng)功能,把增強(qiáng)功能安裝了就能不按切換鍵自由切換狀態(tài)了。
virtualbox設(shè)置鼠標(biāo)在物理機(jī)和虛擬機(jī)間切換:
1.修改切換熱鍵:
在運(yùn)行的虛擬機(jī)上點(diǎn)擊“管理”——“全局設(shè)定”。
在“全局設(shè)定”中選擇“熱鍵”,默認(rèn)使用右ctrl鍵讓鼠標(biāo)離開(kāi)虛擬機(jī)。
按一下CTRL+ALT鍵,就設(shè)置為和vmware一樣的操作了。
2.鼠標(biāo)自動(dòng)切換:
點(diǎn)擊“設(shè)備”——“安裝增強(qiáng)功能”。
點(diǎn)擊“運(yùn)行”,出現(xiàn)安裝界面,等待安裝完成,按回車(chē)退出安裝界面。
將境強(qiáng)功能iso鏡像彈出光驅(qū)即可。
有時(shí)候,可能會(huì)提示需要下載增強(qiáng)功能包,直接點(diǎn)擊下載,根據(jù)提示進(jìn)行操作即可。
注意:SQLPLUS 下無(wú)法使用方向鍵! 使用 list l ; 這種來(lái)查看你提交的最近一個(gè)SQL 你可以用 c /form/from來(lái)更改。 或者右鍵-》標(biāo)記——》復(fù)制-粘貼來(lái)快速編輯。
光標(biāo)也被稱(chēng)為游標(biāo)。Oracle 使用兩種光標(biāo):顯示光標(biāo)和隱式光標(biāo)。不管語(yǔ)句返回多少條紀(jì)錄, PL/SQL 為使用的每一條 UPDATE 、 DELETE 和 INSERT 等 SQL 命令隱式的聲明一個(gè)光標(biāo)。
當(dāng)你在一個(gè)文本框或某種程序中輸入文字時(shí),總有一個(gè)光標(biāo)來(lái)顯示你將要輸入文字的位置。大部分的光標(biāo)都為一個(gè)小豎線(xiàn),規(guī)則的閃動(dòng).而在DOS下有些光標(biāo)則是短短的小橫線(xiàn),同樣規(guī)則的閃動(dòng).現(xiàn)用的windows光標(biāo)是一個(gè)圖像,可以是動(dòng)態(tài)的也可以是靜態(tài)的,在不同情況下樣子也不同。
擴(kuò)展資料:
光標(biāo)的應(yīng)用
(要管理 SQL 語(yǔ)句的處理,必須隱式的給它定義一個(gè)光標(biāo)。)用戶(hù)聲明并使用顯示光標(biāo)處理 SELECT 語(yǔ)句返回的多條記錄。顯示的定義光標(biāo)是一種結(jié)構(gòu),它使用戶(hù)能夠?yàn)樘囟ǖ恼Z(yǔ)句指定內(nèi)存區(qū)域,以便以后使用。
當(dāng) PL/SQL 光標(biāo)查詢(xún)返回多行數(shù)據(jù)時(shí),這些記錄組被稱(chēng)為活動(dòng)集。 Oracle 將這種活動(dòng)集存儲(chǔ)在您創(chuàng)建的顯示定義的已命名的光標(biāo)中。
Oracle 光標(biāo)是一種用于輕松的處理多行數(shù)據(jù)的機(jī)制,沒(méi)有光標(biāo), Oracle 開(kāi)發(fā)人員必須單獨(dú)地、顯示地取回并管理光標(biāo)查詢(xún)選擇的每一條記錄。光標(biāo)的另一項(xiàng)功能事,它包含一個(gè)跟蹤當(dāng)前訪(fǎng)問(wèn)的記錄的指針,這使您的程序能夠一次處理多條記錄。
在windows下用鍵盤(pán)上的左右鍵可以進(jìn)行光標(biāo)移動(dòng),上下鍵可以調(diào)出最近執(zhí)行過(guò)的SQL。
但在linux下是不行的。
分享題目:Oracle如何切換光標(biāo),如何切換光標(biāo)顯示
文章分享:http://redsoil1982.com.cn/article6/hspcog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、外貿(mào)建站、微信公眾號(hào)、網(wǎng)站內(nèi)鏈、服務(wù)器托管、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)