2017-12-30 29 views
-1

Ich habe diese drei ObjektOrakel, eine neue Zeile zu einer verschachtelten Tabelle um

create or replace 
type type_client 
(num int , 
    username varchar(30), 
    balance int, 
    ta table_achat, 
    ref_admin ref type_admin, 
    member function get_prix_achat_total return int); 



create or replace 
type table_achat as table of achat ; 


create or replace 
type achat as object (num_item int , qte int 
); 

create table table_client OF type_client ; 

in einem Eintrag von table_client annehmen .. wir haben eine verschachtelte Tabelle wie folgt aus:

(num_item,qte) : (1 , 5),(2 , 3) 

, was ich will, ist die verschachtelte Tabelle (zum Beispiel) so aussehen:

(num_item,qte) : (1 , 5),(2 , 3)(3 , 44) 

Was ich meine ist, wie eine neue Zeile zu einer bereits erstellt verschachtelten Tabelle wh hinzufügen Werden bestehende Einträge beibehalten? ..

+0

Können Sie die Definition von table_client zeigen? –

+0

@ user9152856: Sie sollten niemals Ihre Frage mit ganzen Sätzen (vor allem wenn Sie etwas fragen) im GROSSBUCHSTABEN posten. Es wird im Allgemeinen verwendet, um Lautheit (oder Geschrei) im Internet auszudrücken und ärgert Menschen, wenn Sie es tun, unabhängig von Ihrer Absicht. –

Antwort

2

Wir können den Operator MULTISET UNION verwenden, um einen neuen Satz aus zwei Sätzen zu erstellen. In Ihrem Fall ist eine dieser Mengen Ihre bestehende Menge und die zweite Menge ist die Menge neuer Einträge. Hier

ist eine Demo basiert auf einer vereinfachten Version der Set-up:

declare 
    nt table_achat; 
begin 
    nt := table_achat(achat(1 , 5),achat(2 , 3)); 
    dbms_output.put_line(nt.count()); 

    nt := nt multiset union table_achat(achat(3 , 44)); 
    dbms_output.put_line(nt.count()); 
end; 
/

eine Tabelle T42 mit einer Spalte COL_NT gegeben, die eine verschachtelte Tabelle Ihrer table_achat Typ ist, dass Sie ein einfügen könnte neuer Eintrag in der verschachtelten Tabelle wie folgt aus:

insert into the 
(select col_nt from t42 where id = 1) 
values (achat(3,44)); 
+0

Ja, es ist sehr nützlich! Ich möchte das gleiche tun, aber in einer geschachtelten Tabelle, die in einem Eintrag von table_client vorhanden sind. – user9152856

0

von der Frage irrelevant, was ich nicht konnte und nicht zu verstehen versuchte, kann man nicht kombinieren insert + select + values Anweisungen wie zuvor. Vielleicht bevorzugen Sie unter den folgenden:

insert into the -- if table has one string column 
(select ta from table_client where username=user); 

OR 

insert into the -- if table has two numeric columns 
values (3,44); 
+0

Nein, Sie haben nicht Recht !!! was ich sage, bevor Ihre Bearbeitung richtig funktioniert !!! – user9152856

Verwandte Themen