各位好
    我想创建一个类型(type),和物理表的结构一样,怎么写?
    
    我尝试这样写,但是出错:dt_alarminfo是一张实际表
    create type t_alarm is table of dt_alarminfo;
    或者create type t_alarm is table of dt_alarminfo%rowtype;
        提示如下信息:CONSUMER是用户名
    PLS-00329: 方案级类型非法引用 CONSUMER.DT_ALARMINFO 
请不吝指正。

解决方案 »

  1.   

    语句看不出什么问题
    表在当前用户下么,有没有创建type的权限
      

  2.   

    是在当前用户下的,consumer用户具有DBA权限
      

  3.   

    好像是不成.
    还是用这种吧.
    CREATE TYPE email_list_typ2 AS OBJECT (
        section_no   NUMBER, 
        emails       email_list_arr);
      

  4.   

    --直接来是不行的 必须先建个这样的类型
    SQL> create or replace type t_alarm_type is object
      2  ( id varchar2(20),
      3  name varchar2(10)
      4  )
      5  /类型已创建。SQL> edi
    已写入 file afiedt.buf  1* create or replace type t_alarm_type_tb is table of t_alarm_type
    SQL> /类型已创建。
      

  5.   

    然后
    CREATE OR REPLACE TYPE email_list_typ3 AS TABLE OF email_list_typ2
      

  6.   

    你的t_alarm 
    是不是已经用了
    比如函数,过程,表名什么的
      

  7.   

    呵呵,用plsql developer+ue,字段多点处理起来也不麻烦.