Oracle游標使用的經驗總結

2021-08-31 13:06:47 字數 4114 閱讀 6009

以下的文章主要是介紹oracle

游標使用,以下就是具體方案的描述,希望在你今後的學習中會有所幫助。首先我們要用到的是select

語句,其用於從資料庫中查詢資料,當在pl/sql

中使用select

語句時,要與into

子句一起使用,查詢的返回值被賦予into

子句中的變數,變數的宣告是在delcare

中。select into

語法如下:

1.             

select [distict|all]  

2.             

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

3.             

from [alias]  

4.             

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

pl/sql

中select

語句只返回一行資料。如果超過一行資料,那麼就要使用顯式oracle

游標(對游標的討論我們將在後面進行),into

子句中要有與select

子句中相同列數量的變數。into

子句中也可以是記錄變數。

%type

屬性在pl/sql

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

那麼使用者就不必修改**,否則就必須修改**。

例:1.             

v_empno scott.emp.empno%type;  

2.             

v_salary emp.salary%type;  

不但列名可以使用%type,

而且變數、oracle

游標、記錄,或宣告的常量都可以使用%type

。這對於定義相同資料型別的變數非常有用。

1.             

delcare  

2.             

v_a number(5):=

10;  

3.             

v_b v_a%

type:=15

;  

4.             

v_c v_a%type;  

5.             

begin  

6.             

dbms_output.put_line  

7.             

('v_a

='||v_a||'

v_b='||v_b||'

v_c='||v_c);  

8.             

end  

9.             

sql>/  

10.          

v_a=

10v_b=15

v_c=  

11.          

pl/sql procedure successfully completed.  

12.          

sql>

其他dml

語句其它運算元據的dml

語句是:insert

、update

、delete

和lock table,

這些語句在pl/sql

中的語法與在sql

中的語法相同。我們在前面已經討論過dml

語句的使用這裡就不再重複了。在dml

語句中可以使用任何在declare

部分宣告的變數,如果是巢狀塊,那麼要注意變數的作用範圍。

例:1.             

create or replace procedure fire_employee (pempno in number)  

2.             

as  

3.             

v_ename emp.ename%type;   

4.             

begin   

5.             

select ename into v_ename   

6.             

from emp   

7.             

where 

empno

=p_empno

;   

8.             

insert into former_emp(empno,ename)   

9.             

values (p_empno,v_ename);   

10.          

delete from emp   

11.          

where 

empno

=p_empno

;   

12.          

update former_emp   

13.          

set 

date_deleted

=sysdate

14.          

where 

empno

=p_empno

;   

15.          

exception   

16.          

when no_data_found then   

17.          

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

18.          

end   

dml語句的結果

當執行一條dml

語句後,dml

語句的結果儲存在四個oracle

游標屬性中,這些屬性用於控制程式流程或者了解程式的狀態。當執行dml

語句時,pl/sql

開啟乙個內建游標並處理結果,游標是維護查詢結果的記憶體中的乙個區域,游標在執行dml

語句時開啟,完成後關閉。隱式游標只使用sql%found,sql%notfound,sql%rowcount

三個屬性.sql%found,sql%notfound

是布林值,sql%rowcount

是整數值。

sql%found

和sql%notfound

在執行任何dml

語句前sql%found

和sql%notfound

的值都是null,

在執行dml

語句後,sql%found

的屬性值將是:

. true :insert

. true :delete

和update

,至少有一行被delete

或update.

. true :select into

至少返回一行

當sql%found

為true

時,sql%notfound

為false

。sql%rowcount

在執行任何dml

語句之前,sql%rowcount

的值都是null,

對於select into

語句,如果執行成功,sql%rowcount

的值為1,

如果沒有成功,sql%rowcount

的值為0

,同時產生乙個異常no_data_found.

sql%isopen

sql%isopen

是乙個布林值,如果游標開啟,則為true,

如果oracle

游標關閉,則為false.

對於隱式游標而言sql%isopen

總是false

,這是因為隱式游標在dml

語句執行時開啟,結束時就立即關閉。

MQ使用經驗總結

mq使用經驗總結 mq經驗總結 首先了解什麼是mq?mq的作用是什麼?mq是通訊中介軟體。他的作用是省去開發人員開發通訊工具的時間,節省開發成本,提高開發效 率。mq的使用,如何安裝mq?根據以往的經驗,win版的mq比較容易安裝,傻瓜式,一路next就可以。aix版本的用 itty安裝。linux...

Less 使用 經驗總結

案例一 cons 80px myloop counter,i 0 when i counter out ptzcontrol over myloop counter,i 1 next iteration myloop 9 生成的css檔案如下 用sublime的less2css外掛程式自動生成的 s...

sourceTree使用經驗總結

1.公司的git 使用者名稱 yihn 密碼 略 2.安裝git客戶端 sourcetree 3.可以連線到你託管在bitbucket stash microsoft tfs或github中的 庫 4.設定 新增遠端倉庫 5.工具 選項新增預設使用者資訊,電子郵件,ssh秘鑰等 6.一般建立本地gi...