2008-02-23 15:12:57
| 分類:
oracle|字型大小
訂閱游標中定義的引數只要定義型別,不用定義長度,精度等;
游標使用一:
declare
cursor mycur is --宣告游標
select * from a;
myrec a%rowtype; --宣告與表字段相同的記錄
begin
open mycur;--開啟游標
fetch mycur into myrec;
while mycur%found loop
dbms_output.put_line(myrec.col1||':'||myrec.col2);
fetch mycur into myrec;
end loop;
close mycur;
end;
/游標使用二: 使用引數
declare
cursor mycur(id varchar) is
select col2 from a where col1=id;
myrec a.col2%type;
begin
open mycur('1');
loop
fetch mycur into myrec;
exit when mycur%notfound;
dbms_output.put_line(myrec);
end loop;
close mycur;
end;
/游標使用二: 使用引數二for迴圈,在for迴圈中不用宣告游標,也不用開啟關閉
declare
cursor mycur(id varchar) is
select col2 from a where col1=id;
begin
for myrec in mycur('1') loop
dbms_output.put_line(myrec.col2);
end loop;
end;
/判讀游標是否開啟,如果沒有開啟
declare
myrec a.col2%type;
cursor mycur(id varchar) is
select col2 from a where col1=id;
begin
if mycur%isopen then//判讀開啟
dbms_output.put_line('游標開啟了');
else
open mycur('1');
end if;
fetch mycur into myrec;
close mycur;
dbms_output.put_line(myrec);
end;
/利用游標獲得資料行數
declare
t_name varchar(10);
cursor mycur is
select col2 from a;
begin
open mycur;
loop
fetch mycur into t_name;//資料填充到游標
exit when mycur%notfound or mycur%notfound is null;
end loop;
dbms_output.put_line(mycur%rowcount);
close mycur;
end;
/利用游標update資料
declare
cursor cur is
select col1 from a for update;//for update 是必須的
temp varchar(10);
begin
open cur;
fetch cur into temp;
while cur%found loop
update a set col1=col1||'_why' where current of cur;//current of cur也是必須的
fetch cur into temp;
end loop;
close cur;
end;
/游標中定義的引數只要定義型別,不用定義長度,精度等;
游標使用一:
declare
cursor mycur is --宣告游標
select * from a;
myrec a%rowtype; --宣告與表字段相同的記錄
begin
open mycur;--開啟游標
fetch mycur into myrec;
while mycur%found loop
dbms_output.put_line(myrec.col1||':'||myrec.col2);
fetch mycur into myrec;
end loop;
close mycur;
end;
/游標使用二: 使用引數
declare
cursor mycur(id varchar) is
select col2 from a where col1=id;
myrec a.col2%type;
begin
open mycur('1');
loop
fetch mycur into myrec;
exit when mycur%notfound;
dbms_output.put_line(myrec);
end loop;
close mycur;
end;
/游標使用二: 使用引數二for迴圈,在for迴圈中不用宣告游標,也不用開啟關閉
declare
cursor mycur(id varchar) is
select col2 from a where col1=id;
begin
for myrec in mycur('1') loop
dbms_output.put_line(myrec.col2);
end loop;
end;
/判讀游標是否開啟,如果沒有開啟
declare
myrec a.col2%type;
cursor mycur(id varchar) is
select col2 from a where col1=id;
begin
if mycur%isopen then//判讀開啟
dbms_output.put_line('游標開啟了');
else
open mycur('1');
end if;
fetch mycur into myrec;
close mycur;
dbms_output.put_line(myrec);
end;
/利用游標獲得資料行數
declare
t_name varchar(10);
cursor mycur is
select col2 from a;
begin
open mycur;
loop
fetch mycur into t_name;//資料填充到游標
exit when mycur%notfound or mycur%notfound is null;
end loop;
dbms_output.put_line(mycur%rowcount);
close mycur;
end;
/利用游標update資料
declare
cursor cur is
select col1 from a for update;//for update 是必須的
temp varchar(10);
begin
open cur;
fetch cur into temp;
while cur%found loop
update a set col1=col1||'_why' where current of cur;//current of cur也是必須的
fetch cur into temp;
end loop;
close cur;
end;
/隱是游標
begin
for cur in(select * from a) loop
dbms_output.put_line(cur.col1||':'||cur.col2);
end loop;
end;
/
oracle游標的使用
當select語句從資料庫中返回的記錄多餘一條時,就可以使用游標 cursor 游標可以理解為一次訪問乙個的一組記錄。select語句將列提取到游標中,然後根據游標取得記錄。使用游標時需要遵從以下的5個步驟 1 宣告一些變數,用於儲存select語句返回列值 2 宣告游標,並制定select語句 3...
oracle游標的使用
游標 cursor 也稱之為游標,從字面意思理解就是游動的游標。游標是對映在結果集中一行資料上的位置實體。游標是從表中檢索出 結果集,並從中每次指向一條記錄進行互動的機制。cursor 游標名 引數名 資料型別 引數名 資料型別 is select 語句 示例 無參游標 cursor c emp i...
ORACLE游標的使用
1 游標的說明 游標是一種向包含多條資料記錄的結果集中每次讀取一行的機制,逐行處理查詢結果,以程式設計的方式訪問資料庫。可以把游標當成指標,可以指定結果集中的任何位置,然後允許使用者對指定位置的資料進行操作。sql的游標是一種臨時資料庫物件,可以臨時存放資料表中的資料行副本,也可以指向儲存在資料表中...