Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [SQL - Oracle] Aggiornare record con dati di un altro record

    Salva a tutti!!! E' il mio primo post sul forum! Vi ho seguito parecchio "in silenzio", ma ora l'esigenza mi ha fatto iscrivere!!

    Cmq lasciando i convenevoli, veniamo al mio problema.


    Devo effettuare degli update a cascata un po' particolari, in pratica devo replicare i campi di una riga su di un altra.

    Mi spiego meglio:

    Tabella A (ID, CAMPO_1, CAMPO_2, ... , CAMPO_N)

    Devo copiare (leggi update) tutti i campi di una riga avente ID 10000 (ad es.) con quelli della riga ID 10.

    sarebbe come fare un

    codice:
    update tabella_a destinazione
    set ....
    
    select *
    from tabella_a origine
    where origine.id = 10
    
    ...
    where destinazione.id = 10000
    visto che vorrei se è possibile fare un update campo per campo con relativa query interna, tipo

    codice:
    update tabella_a destinazione
    set
      destinazione.campo_a = (select campo_a from tabella_a a where a.id = 10)
      ...
      ...
    where destinazione.id = 10000
    Visto che sono un bel po' di colonne la cosa sarebbe alquanto frustrante!!!

    Qualcuno ha qualche suggerimento?

    Grazie in anticipo per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Come riportato nel regolamento devi specificare quale database usi.

  3. #3
    Ah, non l'ho specificato perchè pensavo sia di interesse generale, SQL per l'appunto.

    Cmq ad ogni buon conto, Oracle 10g

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova così

    codice:
    update tabella as t1,
    (select campo1,campo2,....,campoN from tabella where id = 10) as t2
    set t1.campo1 = t2.campo1,
    t1.campo2 = t2.campo2,
    t1.campoN = t2.campoN
    where t1.id = 10000
    e vedi se funziona anche sotto oracle.

  5. #5
    mmm sembra di no!!!

    Mi sa che l'unica soluzione (per ora) è quella che già sto adottando!?!

    Peccato!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.