WEB开发网
开发学院数据库Oracle PL/SQL定义部分之二复合数据类型 阅读

PL/SQL定义部分之二复合数据类型

 2009-03-12 13:10:50 来源:WEB开发网   
核心提示: 示例3:DECLARETYPE MyRecord IS RECORD( no NUMBER(2), name VARCHAR2(14), city scott.dept.loc%TYPE);deptRecord MyRecord;BEGIN--SELECT 语句后列的数目少于记录中的变量数

示例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;

二、索引表(关联数组)

索引表就是键值集合,键是唯一的,用于查找对应的值。键可以是整数或字符串。第一次使用键来指派一个对应的值就是添加元素,而后续这样的操作就是更新元素。

DECLARE
TYPE MyTableTypeName IS TABLE OF ElementType [NOT NULL]
INDEX BY Key_Type;
myName MyTableTypeName;

其中:MyTableTypeName是表类型的名称,ElementType是元素的数据类型,NOT NULL表示不允许引用NULL值,Key_Type是下标的数据类型,BINARY_INTEGER PLS_INTEGER或VARCHAR2(Oracle9i及以后版本可用)。myName是表类型变量名。

示例1

DECLARE
TYPE MyTabelType IS TABLE OF dept.dname%TYPE
NOT NULL INDEX BY BINARY_INTEGER;
my MyTabelType;
BEGIN
SELECT DNAME INTO my(-3) FROM DEPT WHERE  deptno=20;
SELECT DNAME INTO my(-1) FROM DEPT WHERE  deptno=40;
DBMS_OUTPUT.PUT_LINE('my(-3):'||my(-3));
DBMS_OUTPUT.PUT_LINE('my(-1):'||my(-1));
END;

上一页  1 2 3 4 5 6  下一页

Tags:PL SQL 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接