【问题标题】:error- declaration is incomplete or malformed错误 - 声明不完整或格式错误
【发布时间】:2014-01-09 15:24:12
【问题描述】:

我遇到了错误——来自最后一个类型“Subscriber_T”的 ... 声明不完整或格式错误,但我看不出语法有问题。这些是脚本:

CREATE OR REPLACE TYPE Surnames_T AS OBJECT (
  Surname varchar (20)
);
/

CREATE OR REPLACE TYPE listSurnames_T 
AS Varray(4) of Surnames_T;
/


CREATE OR REPLACE TYPE listTels as object(
  Tel   number (12)
);
/

CREATE OR REPLACE TYPE listTels_T as Varray(5) of listTels;
/


CREATE OR REPLACE TYPE ADDRESS_T AS OBJECT (
  NUM       number (6),
  STREET    varchar (20),
  TOWN      varchar (20)
);
/

CREATE or replace type TAddress 
as table of Address_T;
/

create or replace type Subscriber_T as object(
  num_s  number(6),
  sName varchar(30), 
  surname listSurnames_T,
  Adds TAddress,
  DateOfBirth  date,
  member function cal_Age return number,
  phoneNo   listTels_T
);
/
show error

我需要修复一下!

【问题讨论】:

    标签: sql oracle function types


    【解决方案1】:

    您必须将成员函数放在所有其他字段之后;你不能在最后偷偷输入一个字段:

    create or replace type Subscriber_T as object(
      num_s  number(6),
      sName varchar(30), 
      surname listSurnames_T,
      Adds TAddress,
      DateOfBirth  date,
      phoneNo   listTels_T,
      member function cal_Age return number
    );
    /
    
    TYPE SUBSCRIBER_T compiled
    

    必填SQL Fiddle

    这显示在the syntax diagram in the documentation;你可以有一个或多个属性,然后是一个或多个元素(包括函数),但你不能将它们混合在一起。注意哪些位有循环,以及它们循环回的位置。

    【讨论】:

    • 谢谢亚历克斯!该类型现在编译成功,但是在创建 Subscriber_T 类型的表后我遇到了一个新问题。我刚刚发布了一个新问题,其中包括该表以及函数和插入值。请帮忙。 Tnx
    猜你喜欢
    • 2021-04-26
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多