游標是什麼:
游標字面理解就是游動的游標。
用資料庫語言來描述:游標是對映在結果集中一行資料上的位置實體,有了游標使用者就可以訪問結果集中的任意一行資料了,將游標放置到某行後,即可對該行資料進行操作,例如提取當前行的資料等等。
游標的分類:
顯式游標和隱式游標
顯示游標的使用需要4步:
1.宣告游標
cursor mycur is select emp_no,emp_zc
from cus_emp_basic
where com_no = vartype;
2.開啟游標
open mycur;
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 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;
典型游標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
end;
Oracle的dual是什麼
1.dual 確實是一張表.是一張只有乙個字段,一行記錄的表.2.習慣上,我們稱之為 偽表 因為他不儲存主題資料.3.他的存在,是為了操作上的方便.因為select 都是要有特定物件的.如 select from mytable select from myview 等等.但如果我們不需要從具體的表...
oracle的表空間是什麼
在乙個房間裡面這個房間可以儲存很多箱子,箱子裡面可以儲存物品!表空間可以看成房間 箱子可以看成資料檔案 物品可以看成表。使用者指定表空間也就是你希望把屬於這個使用者的表放在那個房間 表空間 裡面。表空間是乙個虛擬的概念可以無限大,但是需要由資料檔案作為載體。表空間裡oracle中的乙個邏輯概念,它用...
dual在oracle中是什麼
dual在oracle中是什麼 問題 dual是什麼?回答 www.2cto.com dual是乙個系統表,不能刪除或者修改其表結構。它的名稱叫做 偽表 或者 啞表 檢視其表結構 sql desc dual 名稱 是否為空?型別 dummy varchar2 1 其欄位只有乙個 dummy 中文叫做...