Oracle 游標(biāo)使用的具體操作方法
以下的文章主要介紹的是Oracle 游標(biāo)使用的具體操作方法,如果你是Oracle 游標(biāo)實(shí)際應(yīng)用方面的新手,你就可以通過(guò)以下的文章對(duì)Oracle 游標(biāo)是如何正確使用的方法有一個(gè)更好的了解,以下就是文章的詳細(xì)內(nèi)容的介紹。
Oracle 游標(biāo)使用大全
我們將討論各種用于訪(fǎng)問(wèn)Oracle數(shù)據(jù)庫(kù)的DDL和TCL語(yǔ)句。
查詢(xún)
SELECT語(yǔ)句用于從數(shù)據(jù)庫(kù)中查詢(xún)數(shù)據(jù),當(dāng)在PL/SQL中使用SELECT語(yǔ)句時(shí),要與INTO子句一起使用,查詢(xún)的返回值被賦予INTO子句中的變量,變量的聲明是在DELCARE中。SELECT INTO語(yǔ)法如下:
- SELECT [DISTICT|ALL]{*|column[,column,...]}
- INTO (variable[,variable,...] |record)
- FROM {table|(sub-query)}[alias]
- WHERE............
在Oracle 游標(biāo)使用的過(guò)程中,PL/SQL中SELECT語(yǔ)句只返回一行數(shù)據(jù)。如果超過(guò)一行數(shù)據(jù),那么就要使用顯式游標(biāo)(對(duì)游標(biāo)的討論我們將在后面進(jìn)行),INTO子句中要有與SELECT子句中相同列數(shù)量的變量。INTO子句中也可以是記錄變量。
%TYPE屬性
在PL/SQL中可以將變量和常量聲明為內(nèi)建或用戶(hù)定義的數(shù)據(jù)類(lèi)型,以引用一個(gè)列名,同時(shí)繼承他的數(shù)據(jù)類(lèi)型和大小。這種動(dòng)態(tài)賦值方法是非常有用的,比如變量引用的列的數(shù)據(jù)類(lèi)型和大小改變了,如果使用了%TYPE,那么用戶(hù)就不必修改代碼,否則就必須修改代碼。
例:
- v_empno SCOTT.EMP.EMPNO%TYPE;
- v_salary EMP.SALARY%TYPE;
不但列名可以使用%TYPE,而且變量、游標(biāo)、記錄,或聲明的常量都可以使用%TYPE。這對(duì)于定義相同數(shù)據(jù)類(lèi)型的變量非常有用。
- 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);
- END
- SQL>/
- V_A=10 V_B=15 V_C=
- PL/SQL procedure successfully completed.
- SQL>
其他DML語(yǔ)句
其它操作數(shù)據(jù)的DML語(yǔ)句是:INSERT、UPDATE、DELETE和LOCK TABLE,這些語(yǔ)句在PL/SQL中的語(yǔ)法與在SQL中的語(yǔ)法相同。我們?cè)谇懊嬉呀?jīng)討論過(guò)DML語(yǔ)句的使用這里就不再重復(fù)了。在DML語(yǔ)句中可以使用任何在DECLARE部分聲明的變量,如果是嵌套塊,那么要注意變量的作用范圍。
例:
- CREATE OR REPLACE PROCEDURE FIRE_EMPLOYEE (pempno in number)
- AS
- v_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
以上的相關(guān)內(nèi)容就是對(duì)Oracle 游標(biāo)使用的介紹,望你能有所收獲。
【編輯推薦】