Oracle 游標使用大全 1

2021-04-12 22:30:32 字數 1663 閱讀 9108

查詢

select語句用於從資料庫中查詢資料,當在pl/sql中使用select語句時,要與into子句一起使用,查詢的返回值被賦予into子句中的變數,變數的宣告是在delcare中。select into語法如下:

select [distict|all]

into (variable[,variable,...] |record)

from [alias]

where............

pl/sql中select語句只返回一行資料。如果超過一行資料,那麼就要使用顯式游標(對游標的討論我們將在後面進行),into子句中要有與select子句中相同列數量的變數。into子句中也可以是記錄變數。

%type屬性

在pl/sql中可以將變數和常量宣告為內建或使用者定義的資料型別,以引用乙個列名,同時繼承他的資料型別和大小。這種動態賦值方法是非常有用的,比如變數引用的列的資料型別和大小改變了,如果使用了%type,那麼使用者就不必修改**,否則就必須修改**。

例:v_empno scott.emp.empno%type;

v_salary emp.salary%type;

不但列名可以使用%type,而且變數、游標、記錄,或宣告的常量都可以使用%type。這對於定義相同資料型別的變數非常有用。

delcare

v_a number(5):=10;

v_b v_a%type:=15;

v_c v_a%type;

begin

dbms_output.put_line

('v_a='||v_a||'v_b='||v_b||'v_c='||v_c);

endsql>/

v_a=10 v_b=15 v_c=

pl/sql procedure successfully completed.

sql>

其他dml語句

其它運算元據的dml語句是:insert、update、delete和lock table,這些語句在pl/sql中的語法與在sql中的語法相同。我們在前面已經討論過dml語句的使用這裡就不再重複了。在dml語句中可以使用任何在declare部分宣告的變數,如果是巢狀塊,那麼要注意變數的作用範圍。

例:create or replace procedure fire_employee (pempno in number)

asv_ename emp.ename%type;

begin

select ename into v_ename

from emp

where empno=p_empno;

insert into former_emp(empno,ename)

values (p_empno,v_ename);

delete from emp

where empno=p_empno;

update former_emp

set date_deleted=sysdate

where empno=p_empno;

exception

when no_data_found then

dbms_output.put_line('employee number not found!');

end

Oracle 游標使用大全3

記錄變數定義乙個記錄變數使用type命令和 rowtype,關於 rowstype的更多資訊請參閱相關資料。記錄變數用於從游標中提取資料行,當游標選擇很多列的時候,那麼使用記錄比為每列宣告乙個變數要方便得多。當在表上使用 rowtype並將從游標中取出的值放入記錄中時,如果要選擇表中所有列,那麼在s...

Oracle 游標使用大全2

游標for迴圈 在大多數時候我們在設計程式的時候都遵循下面的步驟 1 開啟游標 2 開始迴圈 3 從游標中取值 4 檢查那一行被返回 5 處理 6 關閉迴圈 7 關閉游標 可以簡單的把這一類 稱為游標用於迴圈。但還有一種迴圈與這種型別不相同,這就是for迴圈,用於for迴圈的游標按照正常的宣告方式宣...

Oracle 游標使用大全2

游標for迴圈 在大多數時候我們在設計程式的時候都遵循下面的步驟 1 開啟游標 2 開始迴圈 3 從游標中取值 4 檢查那一行被返回 5 處理 6 關閉迴圈 7 關閉游標 可以簡單的把這一類 稱為游標用於迴圈。但還有一種迴圈與這種型別不相同,這就是for迴圈,用於for迴圈的游標按照正常的宣告方式宣...