kyselyihin perustuvat päivitykset
8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Muut | PL / SQL | SQL | RAC | WebLogic | Linux
Etusivu ”Artikkelit” Muut ”täällä
Tässä artikkelissa kuvataan, kuinka taulukko voidaan päivittää toisen taulukon tietojen avulla.
- Asetukset
- Alakyselymenetelmä
- Sisäisen näkymän menetelmä
- MERGE-lauseetapa
Aiheeseen liittyvät artikkelit.
- Yhdistä-lause
Asetukset
DEST_TAB -taulukossa on 10000 riviä. SOURCE_TAB -taulukko sisältää 5000 riviä, joista jokaisella on vastaava avainarvo taulukon DEST_TAB rivillä, mutta eri tiedot CODE ja DESCRIPTION -sarakkeet.
Tässä vaiheessa emme näe yhtään arvoa sarakkeissa DESCRIPTION DEST_TAB -taulukon div> -sarakkeessa on sana Päivitetty.
SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>
Tavoitteena on päivittää DEST_TAB -taulukon rivit SOURCE_TAB -taulukon tietojen kanssa.
Alikyselymenetelmä
T ensimmäinen vaihtoehto on päivittää DEST_TAB -taulukko käyttämällä alikyselyä oikean datan vetämiseksi SOURCE_TAB -taulukosta. Huomaa, että predikaatti EXISTS sulkee pois rivit DEST_TAB -taulukosta, jossa SOURCE_TAB taulukko. Ilman tätä vastaamattomien rivien arvoksi asetetaan NULL.
Nykyisen tietomäärän toteutussuunnitelma näkyy alla.
Jos työmäärä on riittävän suuri ja palvelin voi selviytymään ylimääräisestä työmäärästä, PARALLEL -vihjettä voidaan käyttää suorittamaan tämä ajo rinnakkain.
Inline View Method
Toinen vaihtoehto on liittyä kahteen taulukkoon inline-näkymänä ja perustaa päivitys siihen.
Nykyisen tietomäärän toteutussuunnitelma on esitetty alla.
Jos työmäärä on riittävän suuri ja palvelin pystyy selviytymään ylimääräisestä työtaakasta, PARALLEL -vihjeen avulla voidaan suorittaa tämä ajo rinnakkain.
Päivitettyjen rivien määrää voidaan muuttaa lisäämällä WHERE -lauseke joko sisäiseen näkymään tai pääpäivityksen käskyyn.
- YHDISTÄ-lause
Toivottavasti tämä auttaa. Terveisin Tim …
Takaisin alkuun.