欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

cursor oracle 種類

在Oracle數(shù)據(jù)庫(kù)中,cursor是對(duì)數(shù)據(jù)庫(kù)中的運(yùn)行模塊的引用,它可以對(duì)于一個(gè)或多個(gè) SQL 語(yǔ)句的執(zhí)行和結(jié)果集的處理進(jìn)行管理。Oracle中有許多類型的cursor,本文將對(duì)這些類型進(jìn)行詳細(xì)介紹。

1. 隱式游標(biāo)

DECLARE
l_empno emp.empno%TYPE := 7934;
l_ename emp.ename%TYPE;
BEGIN
SELECT ename INTO l_ename FROM emp WHERE empno = l_empn;
END;

這是最簡(jiǎn)單的Oracle數(shù)據(jù)庫(kù)的查詢模式,也是隱式游標(biāo)的簡(jiǎn)單應(yīng)用。隱式游標(biāo)會(huì)自動(dòng)打開查詢中的結(jié)果集,并且自動(dòng)關(guān)閉結(jié)果集。查詢語(yǔ)句在當(dāng)前執(zhí)行區(qū)域中,而不需要為它定義游標(biāo)。

2. 顯式游標(biāo)

DECLARE
CURSOR c1 IS SELECT empno, ename FROM emp WHERE job = 'CLERK' AND deptno = 20;
empno emp.empno%TYPE;
ename emp.ename%TYPE;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO empno, ename;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNO: ' || empno || 'ENAME: ' || ename);
END LOOP;
CLOSE c1;
END;

顯式游標(biāo)可以顯式地打開結(jié)果集并處理它的所有行。在這個(gè)例子中,我們?yōu)橐粋€(gè)查詢定義了一個(gè)顯式游標(biāo)。然后,我們使用FETCH語(yǔ)句來(lái)獲取游標(biāo)結(jié)果集中的數(shù)據(jù),直到結(jié)果集中沒(méi)有數(shù)據(jù)。最后,我們使用CLOSE語(yǔ)句顯式關(guān)閉游標(biāo)。顯式游標(biāo)是使用Oracle數(shù)據(jù)庫(kù)中唯一的一種游標(biāo)語(yǔ)法。

3. 游標(biāo)變量游標(biāo)

DECLARE
TYPE cur_typ IS REF CURSOR;
c1 cur_typ;
empno emp.empno%TYPE;
ename emp.ename%TYPE;
BEGIN
OPEN c1 FOR SELECT empno, ename FROM emp WHERE job = 'CLERK' AND deptno = 20;
LOOP
FETCH c1 INTO empno, ename;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('EMPNO: ' || empno || 'ENAME: ' || ename);
END LOOP;
CLOSE c1;
END;

游標(biāo)變量游標(biāo)是一種特殊的游標(biāo),用于將結(jié)果集指定為游標(biāo)變量的值。在打開后,我們使用FETCH語(yǔ)句來(lái)獲取游標(biāo)結(jié)果集中的數(shù)據(jù),直到結(jié)果集中沒(méi)有數(shù)據(jù)。然后,我們使用CLOSE語(yǔ)句顯式關(guān)閉游標(biāo)。

4. 游標(biāo)表游標(biāo)

DECLARE
TYPE ids_t IS TABLE OF emp.empno%TYPE INDEX BY PLS_INTEGER;
employees ids_t;
CURSOR c1 IS SELECT empno FROM emp WHERE job = 'CLERK' AND deptno = 20;
BEGIN
OPEN c1;
LOOP
FETCH c1 BULK COLLECT INTO employees LIMIT 10;
EXIT WHEN employees.COUNT = 0;
FOR i IN employees.FIRST .. employees.LAST LOOP
DBMS_OUTPUT.PUT_LINE('EMPNO: ' || employees(i));
END LOOP;
END LOOP;
CLOSE c1;
END;

游標(biāo)表游標(biāo)被使用在一個(gè)表t表中舉例,其中每個(gè)游標(biāo)都被用于引用游標(biāo)中的結(jié)果集的一行。當(dāng)處理一整個(gè)結(jié)果集的時(shí)候,它可以快速顯示所有數(shù)據(jù)。

總結(jié):

以上就是Oracle中所有游標(biāo)的類型。相比于其他數(shù)據(jù)庫(kù),Oracle的游標(biāo)類型比較多,但每一種游標(biāo)都有自己特殊的用處。使用不同的游標(biāo)可以輕松處理不同的數(shù)據(jù)場(chǎng)景,提高數(shù)據(jù)處理的效率。