萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> PL/SQL定義部分之二復合數據類型

PL/SQL定義部分之二復合數據類型

復合類型

復合類型可以存儲多個值,包括記錄和集合。集合是一維的,但是可以在集合中放入其它集合,變成多維集合。集合又分為索引表、嵌套表和變長數組三種。要使用集合,我們首先要創建集合類型,然後聲明該類型的變量。我們可以在任何PL/SQL塊、子程序或包的聲明部分使用TABLE和VARRAY關鍵字來聲明集合類型。集合的作用域和同其他類型變量一樣,在一個塊或子程序中,當程序進入塊或子程序時有效,退出時失效。在包中,集合在我們第一次引用包的時候有效,直至會話終止時才失效。

一、記錄

記錄可以包括多個成員,從而可以保存多個值。記錄中的成員的數據類型可以不同。記錄在使用時必須先聲明記錄類型,然後定義記錄變量,最後才能在PL/SQL中使用。

示例1:

DECLARE
TYPE MyRecord IS RECORD(
name VARCHAR2(10),
age  SMALLINT
);
mr MyRecord;
BEGIN
mr.name:='zhangsan';
mr.age:=20;
DBMS_OUTPUT.PUT_LINE('姓名:'||mr.name||'    年齡:'||mr.age);
END;

示例2: DECLARE
TYPE MyRecord IS RECORD(
no    NUMBER(2),
name  VARCHAR2(14),
city  scott.dept.loc%TYPE
);
deptRecord MyRecord ;
BEGIN
--SELECT 語句後列的數目與記錄中的變量數目相同
SELECT deptno,dname,loc into deptRecord FROM DEPT WHERE DEPTNO=30;
DBMS_OUTPUT.PUT_LINE(deptRecord.no||':'||deptRecord.name||':'||deptRecord.city);
END;

示例3:

DECLARE
TYPE MyRecord IS RECORD(
no    NUMBER(2),
name  VARCHAR2(14),
city  scott.dept.loc%TYPE
);
deptRecord MyRecord;
BEGIN
--SELECT 語句後列的數目少於記錄中的變量數目
SELECT dname,loc INTO deptRecord.name,deptRecord.city FROM DEPT WHERE DEPTNO=30;
deptRecord.no:=30;
DBMS_OUTPUT.PUT_LINE(deptRecord.no||':'||deptRecord.name||':'||deptRecord.city);
END;

示例4:

DECLARE

--特殊定義記錄方式,記錄中變量的類型與dept表行的類型相同

deptRecord dept%ROWTYPE;
BEGIN
SELECT * INTO deptRecord FROM DEPT WHERE DEPTNO=30;
DBMS_OUTPUT.PUT_LINE(deptRecord.deptNo||':'||deptRecord.dname||':'||deptRecord.loc);
END;

  • 共4頁:
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 下一頁
copyright © 萬盛學電腦網 all rights reserved