错误:ORA-01730:指定的列名无效

时间:2014-01-04 09:34:52

标签: sql oracle

请帮忙。我想从ffl表创建一个对象视图,但我不断收到上述错误,找不到任何解决方案。

create table COPY_BOOK (
  NUM number(4,0), 
  DATE_Purchase date, 
  PRICE number(5,2), 
  LOAN_code varchar2(20) ,
  STATUS varchar2(15) check (STATUS in ('GOOD','DAMAGED')), 
  CONSTRAINT CP_PK primary key (num) ,
  constraint Loan_code_D  check (LOAN_CODE in ('NO', 'LOAN')) 
);

create or replace type copy_book_t as object(
  num   number(4, 0),
  loan_code   varchar2 (20)
);
/

create or replace view Vcopy_book of copy_book_t
with object oid (num)
as select cb.num, cb.date_purchase, cb.price, cb.loan_code, cb.status
from copy_book cb;
/

类型定义是否有问题?

1 个答案:

答案 0 :(得分:3)

来自documentation

  

定义对象视图的过程是:

     
      
  1. 定义对象类型,其中该类型的每个属性对应于关系表中的现有列。

  2.   
  3. 编写一个查询,指定如何从关系表中提取数据。以与。相同的顺序指定列   对象类型中的属性。

  4.   

您已经使用两个属性创建了对象类型,但是您尝试使用关系表中的五列填充它。

您需要更改对象类型以使其具有相同的五个属性(demo),或者只选择视图中的numloan_code列(demo )。

顺便提一下,documentation还建议使用with object identifier而不是with object oid