Fügen Sie Daten aus einer Tabelle in eine einzelne Spalte ein, eine andere Tabelle ohne Beziehung

mradul

Ich muss Daten in eine Tabelle einfügen, die bereits einige Daten enthält, jetzt wird der Tabelle eine neue Spalte hinzugefügt und wir müssen die neue Spalte mit Werten aus einer anderen Tabelle einfügen/aktualisieren.

create table target_tab (fname varchar2(20), acc_no number);

insert into target_tab values('Anybody',121);
insert into target_tab values('Somebody',122);
insert into target_tab values('Nobody',123);

alter table target_tab add sc_vlan varchar2(20);

create table source_tab (rsrc_nm varchar2(20));

insert into source_tab values ('2839_124');
insert into source_tab  values('2839_125');
insert into source_tab values('2839_126');
insert into source_tab values('2840_131');
insert into source_tab values('2841_132');
insert into source_tab values('2840_134');
insert into source_tab values('2840_127');

Jetzt müssen wir die Werte der Spalte rsrc_nm von source_tab in die scvlan-Spalte von target_tab einfügen.

Hinweis: Wir haben keine Beziehung zwischen beiden Tabellen und wie wir im Beispiel sehen, dass target_tab weniger Zeilen hat als source_tab, sollten nur Zeilen, die sich in target_tab befinden, mit eindeutigen Werten aus source_tab eingefügt/aktualisiert werden. Wir können jeden Wert von source_tab abrufen.

 declare 

  cursor c_1 is select rsrc_nm 
            from source_tab                                                                                                                                                   
              where rownum <= (select count(1)                                                                                                                                                 
               from target_tab);                                                                                                                                                                

  type t_tab is table of c_1%rowtype index by pls_integer;
  l_tab t_tab;

begin

  open c_1;
  fetch c_1 bulk collect into l_tab;
    for i in 1..l_tab.count
    loop  

      update target_tab set sc_vlan = l_tab(i).rsrc_nm
      where sc_vlan is null
      and rownum = 1;
      commit;
    exit when c_1%notfound;
  end loop;
  close c_1;

EXCEPTION
  WHEN OTHERS THEN
    dbms_output.put_line(SQLERRM);
    dbms_output.put_line(dbms_utility.format_error_backtrace());    
end;
Grübeln Sie Stibbons

Ich denke, Sie könnten so verwenden merge:

merge into target_tab t
using (
  select s.rsrc_nm, t.rwd
    from (select row_number() over (order by acc_no)  rn, t.*, rowid rwd 
            from target_tab t) t
    join (select row_number() over (order by rsrc_nm) rn, s.* 
            from source_tab s) s
      on t.rn =s.rn
    ) s
on (t.rowid = s.rwd)
when matched then update set t.sc_vlan = s.rsrc_nm

Sortieren Sie die Daten in beiden Tabellen nach beliebigen Spalten, vergleichen Sie sie mit row_numberund aktualisieren Sie sie.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

So fügen Sie die Daten aus einer Spalte in eine andere Tabelle ein

Wählen Sie Daten aus einer Spalte basierend auf der Bedingung einer anderen Spalte in derselben Tabelle aus und fügen Sie die resultierenden Daten in eine andere Tabelle ein

So wählen Sie Daten aus einer Tabelle aus und fügen sie mit einer neuen Spalte in eine andere Tabelle ein

Fügen Sie Daten aus der Spalte als Durchschnitt in eine andere Tabelle in MySQL ein

Kopieren Sie Daten aus einer Zelle in einer Tabelle und fügen Sie sie in eine andere Zelle in dieser Tabelle ein

Fügen Sie einen Großteil der Daten aus einer Tabelle in eine andere ein MySQL Python

So erhalten Sie Daten aus einer Tabelle und fügen sie nach der mathematischen Operation in eine andere Tabelle ein

Spotfire: Fügen Sie eine berechnete Spalte basierend auf Daten aus einer anderen Tabelle ein

Fügen Sie Daten aus jeder Zeile in der Spalte in die Tabelle ein, wenn eine andere Spalte den gleichen Wert hat

Wählen Sie zufällig Werte aus einer Spalte aus und fügen Sie sie in eine andere Tabelle in SQL ein

Wählen Sie einige Daten aus einer Datenbanktabelle aus und fügen Sie sie in eine andere Tabelle in derselben Datenbank ein

Fügen Sie der Tabelle eine Spalte mit Daten aus einer anderen Tabelle hinzu

So fügen Sie in MYSQL Zeilen aus einer Tabelle in eine andere Tabelle ein

Suchen und extrahieren Sie Daten aus einer Tabelle und fügen Sie sie in PHP und MySQL in eine andere ein

Laden Sie Daten aus einer temporären Tabelle ohne Bedingungen in eine andere temporäre Tabelle

Fügen Sie IDs basierend auf einer anderen Spalte von einer Tabelle in eine andere ein

So erstellen Sie eine neue Tabelle aus einer vorhandenen Tabelle und fügen eine neue Spalte in die Tabelle ein

Fügen Sie Daten von einer Tabelle in eine andere Tabelle ein und fügen Sie neue Werte hinzu

Fügen Sie Daten aus einer anderen Tabelle in eine leere Tabelle ein

So zählen Sie Werte für eine ID in einer Tabelle und fügen Daten in eine andere Tabelle ein

So fügen Sie eine ID aus einer Benutzertabelle in eine andere Tabelle ein

Ersetzen von Spaltenwerten aus einer Tabelle in eine andere, ohne eine weitere Spalte hinzuzufügen

So wählen Sie Daten (mit einem Dezimaltyp) aus einer Tabelle aus und fügen sie in eine andere Tabelle (mit einem anderen Dezimaltyp) ein

Fügen Sie Werte von einer Spalte in eine andere in dieselbe Tabelle ein

MySQL: Fügen Sie Werte aus einer alten Tabelle in eine neue Tabelle ein, indem Sie eine andere Zuordnungstabelle verwenden

Fügen Sie Daten aus zwei Tabellen in eine andere Tabelle ein

So fügen Sie Daten aus der dynamischen Dropdown-Liste in eine andere Tabelle ein

Fügen Sie Daten aus einer Tabelle in eine andere mit denselben Spaltennamen hinzu

SQLite: Abrufen von Daten aus einer Spalte in einer Tabelle mit SELECT, um abgerufene Daten in eine andere Tabelle einzufügen