在oracle資料庫中,可以使用游標瀏覽資料、更新資料和刪除資料,接下來列舉以幾個簡單的例子
通過使用游標既可以逐行檢索結果集中的記錄,又可以更新或刪除當前游標行的資料如果要通過游標更新或刪除資料,在定義游標時必須要帶有for update子句其語句格式如下:
cursor cursor_name is select_statement
for update[ of column_reference] [nowait];
1.瀏覽資料
set serveroutput on
declare
--宣告變數和游標
v_specialty students.specialty%type;
v_sname students.name%type;
v_dob students.dob%type;
cursor students_cur
is select name,specialty
from students
where specialty=v_specialty;
begin
v_specialty:='&specialty';
open students_cur;
dbms_output.put_line('學生姓名出生日期');
loop
fetch students_cur into v_sname,v_dob;
exit when students_cur%notfound;
dbms_output.put_line(v_sname||''||v_dob);
end loop;
close students_cur;
end;
/
2.更新資料update語句的格式
update table_name set ... where current of cursor_name;
declare
--宣告變數和游標
v_title teachers.title%type;
cursor teachers_cur
is select title
from teachers
for update;
begin
open teachers_cur;
loop
fetch teachers_cur into v_title;
exit when teachers_cur%notfound;
case
when v_title='教授' then
update teachers
set wage = 1.1 * wage where current of teachers_cur;
when v_title='高工' then
update teachers
set wage = 1.05 * wage where current of teachers_cur;
else
update teachers
set wage = wage+100 where current of teachers_cur;
end case;
end loop;
close teachers_cur;
end;
/
3.刪除資料
delete語句的格式
delete from table_name where current of cursor_name;
declare
--宣告變數和游標
v_specialty students.specialty%type;
v_sname students.name%type;
cursor students_cur
is select name,specialty
from students
for update;
begin
open stduents_cur;
fetch students_cur into v_sname,v_specialty;
while students_cur%found loop
if v_specialty = 'cs' then
delete from students where current of students_cur;
end if;
fetch stduents_cur into v_sname,v_specialty;
end loop;
close students_cur;
end;
/
以上內容參考其他書籍的例子所寫
游標的簡單應用
使用游標前資料 declare loginid varchar 50 declare loginpass varchar 50 declare cursor1 cursor for 定義游標cursor1 select loginid,loginpassword from users where l...
oracle游標的使用
當select語句從資料庫中返回的記錄多餘一條時,就可以使用游標 cursor 游標可以理解為一次訪問乙個的一組記錄。select語句將列提取到游標中,然後根據游標取得記錄。使用游標時需要遵從以下的5個步驟 1 宣告一些變數,用於儲存select語句返回列值 2 宣告游標,並制定select語句 3...
Oracle游標的問題
游標 cursor 是oracle系統在記憶體中開闢的乙個工作區,在其中存放select語句返回的查詢集 他是乙個查詢結果集,相當於快取 游標內有指標 在游標所定義的工作區中,存在著乙個指標 pointer 在初始狀態它指向查詢結果的首記錄。當指標放置到某行後,即可對該行資料進行操作。對游標的操作有...