Frage

Ich habe Fehler „ora-03001: unimplemented Feature“ wenn ich versuche, unten einen Datensatz auf Tabelle einzufügen. Ich habe die ganze Nacht gesucht, noch kein Glück. Ich verwende Oracle10g Ausgabe ausdrücken.

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'));
War es hilfreich?

Lösung

Es ist ein einfacher Syntaxfehler: die VALUES-Klausel erfordert alles in Klammern eingewickelt werden:

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

1 row created.

SQL>

Dies gilt, ob wir in mehrere Einzelwerte oder einen einzigen Typ vorbei sind.


Der ein Fall, wenn es nicht gilt ein Einsatz in PL / SQL einen RECORD-Typ. Welche nicht relevant für Ihre Situation ist, aber ich bin es der Vollständigkeit halber erwähnen.

eine Variable RECORD Einfügen in etwa so aussehen würde

declare
    r23 t23%rowtype;  -- record declaration
begin
    r23.id := 1;
    r23.created := sysdate;
    -- insert using record variable
    insert into t23
    values r23; 
end;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top