2010-12-07 74 views
1

当我尝试在下表中插入记录时,出现错误“ora-03001:未实现的功能”。我搜查了整晚,仍然没有运气。我正在使用Oracle10g快速版。Oracle 10g快速版需要帮助

create or replace type MajorsType As varray(20) of varchar2(10); 

create or replace type studenttype as object (
stuID varchar2(5), 
lastName varchar2(15), 
firstName varchar2(12), 
majors MajorsType) 
INSTANTIABLE 
NOT FINAL; 

create table Student of StudentType (
constraint student_stuID_pk PRIMARY KEY(stuID)); 

INSERT INTO student values StudentType ('S999', 'Smith', 'John', MajorsType('Math', 'Accounting')); 
+0

为什么您使用的是表达版本时,你可以轻松地下载完整版? – orangepips 2010-12-07 17:25:59

+0

我对这件事很陌生,我认为快递版是免费的。 – Nate 2010-12-07 18:01:19

回答

3

这是一个简单的语法错误:在VALUES子句所需要的所有被包裹在括号:

SQL> INSERT INTO student 
    2 values (StudentType ('S999', 'Smith', 'John', MajorsType('Math', 'Accounting'))) 
    3/

1 row created. 

SQL> 

这适用于我们是否正在传递几个标量值或单一类型。


不适用的一种情况是使用RECORD类型的PL/SQL插入。这与你的情况无关,但我提到它的完整性。

插入一条记录变量将是这个样子

declare 
    r23 t23%rowtype; -- record declaration 
begin 
    r23.id := 1; 
    r23.created := sysdate; 
    -- insert using record variable 
    insert into t23 
    values r23; 
end;