1

以下の表にレコードを挿入しようとすると、「ora-03001: 実装されていない機能」というエラーが発生しました。私は一晩中検索しましたが、まだ運がありません。私は Oracle10g Express Edition を使用しています。

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'));
4

1 に答える 1

3

これは単純な構文エラーです。VALUES 句では、すべてを括弧で囲む必要があります。

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

1 row created.

SQL>

これは、複数のスカラー値または単一の型を渡すかに関係なく適用されます。


適用されない 1 つのケースは、RECORD 型を使用した PL/SQL での挿入です。これはあなたの状況には関係ありませんが、完全を期すために言及しています。

RECORD 変数を挿入すると、次のようになります。

declare
    r23 t23%rowtype;  -- record declaration
begin
    r23.id := 1;
    r23.created := sysdate;
    -- insert using record variable
    insert into t23
    values r23; 
end;
于 2010-12-07T18:17:44.563 に答える