首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

PL/SQL 集合门类

2012-08-30 
PL/SQL 集合类型--创建一个类型CREATE OR REPLACE TYPE Project ISOBJECT (project_no NUMBER(2),title VA

PL/SQL 集合类型
--创建一个类型
CREATE OR REPLACE TYPE Project IS  OBJECT (
  project_no NUMBER(2),
  title VARCHAR2(35),
  cost NUMBER(7,2))
--创建一个集合
CREATE OR REPLACE TYPE ProjectList is table of  Project



-- Created on 2011-10-11 by HUCHANGKUN
declare
  -- Local variables here
  i integer;
  V_LIST projectlist := projectlist();
  V_PRO project :=project(NULL,NULL,NULL);
begin
  --为集合增加元素
  FOR I IN 1 ..4 LOOP
      V_PRO.project_no := I;
      V_PRO.title := I||' TITLE';
      V_PRO.cost := I;
      V_LIST.EXTEND;
      V_LIST(V_LIST.COUNT):=V_PRO;
  END LOOP;
 
  --从集合中取元素
  DBMS_OUTPUT.put_line(V_LIST.COUNT);
 
  DBMS_OUTPUT.put_line(V_LIST(V_LIST.FIRST).project_no);
  DBMS_OUTPUT.put_line(V_LIST(V_LIST.LAST).project_no);
end;

--注意project(I,I||' TITLE',I);
-- Created on 2011-10-11 by HUCHANGKUN
declare
  -- Local variables here
  i integer;
  V_LIST projectlist := projectlist();
  --V_PRO project :=project(NULL,NULL,NULL);
begin
  -- Test statements here
  FOR I IN 1 .. 8 LOOP
      --V_PRO.project_no := I;
      --V_PRO.title := I||' TITLE';
      --V_PRO.cost := I;
      V_LIST.EXTEND;
      V_LIST(V_LIST.COUNT) := project(I,I||' TITLE',I);
  END LOOP;
 
  DBMS_OUTPUT.put_line(V_LIST.COUNT);
 
  DBMS_OUTPUT.put_line(V_LIST(V_LIST.FIRST).project_no);
  DBMS_OUTPUT.put_line(V_LIST(V_LIST.LAST).project_no);
end;


【注意】
create type zjj as object (n number);
这个可以建立一个数据的类型对象,以后可以在其他地方引用,
而type zjj is record仅仅是声明一种类型,只能在存储过程里面使用
create table zjj1 of zjj 这个用法是有的

热点排行