Creative Saplings

PÄIVITÄ

tammikuu 29, 2021
No Comments

Tarkoitus

Käytä UPDATE -käskyä muuttaaksesi olemassa olevia arvoja taulukossa tai näkymän perustaulussa tai toteutuneen näkymän päätaulukko.

Lisäaiheet

  • Edellytykset

  • Syntaksi

  • Semantiikka

  • Esimerkkejä

Edellytykset

kun päivität taulukon arvoja, taulukon on oltava omassa skeemassasi tai sinulla on oltava taulukossa objektin etuoikeus UPDATE.

Päivitettäväksi arvot näkymän perustaulukossa:

  • Sinulla on oltava näkymässä UPDATE -objektioikeus ja

  • Jokaisella, joka omistaa näkymän sisältävän skeeman, on oltava UPDATE -objektioikeus perustaulussa.

Järjestelmän UPDATE ANY TABLE -oikeuden avulla voit myös päivittää arvoja missä tahansa tai taulukossa minkä tahansa näkymän.

Sinulla on oltava myös SELECT -objektioikeus päivitettävälle objektille, jos:

  • Objekti on etätietokannassa tai

  • SQL92_SECURITY -alustusparametri on asetettu arvoon TRUE ja UPDATE -operaatio viittaa taulukon sarakkeisiin, kuten sarakkeisiin where_clause.

Syntaksi

päivitys :: =

Kuvaesityksen päivitys.gif

(DML_table_expression_clause :: =, update_set_clause :: =, where_clause :: =, returning_clause :: =, error_logging_clause :: =)

DML_table_expression_clause :: =

Kuvan kuvaus DML_table_expression_clause.gif

(alikysely :: = – osa SELECT-osaa, alikyselyn_rajoituksen_lauseke :: =, taulukon_kokoelman_lauseke :: =)

alikyselyn_rajoituksen_lauseke :: =


Kuvan kuvaus subquery_restriction_clause.gif

table_collection_expression :: =


Kuva taulukon_kokoelma_lauseke.gif-kuvaus

update_set_clause :: =


Kuvan kuvaus päivitys-set_clause. gif

where_clause :: =


Kuvan kuvaus where_clause.gif

returning_clause :: =


Kuvan kuvaus returning_clause.gif

error_logging_clause :: =

Kuvan kuvaus error_logging_clause.gif

Semantiikka

vihje

Määritä kommentti joka välittää ohjeet optimoijalle suoritussuunnitelman valitsemisesta käskylle.

Voit sijoittaa rinnakkaisen vihjeen heti UPDATE -avainsanan peräkkäin molempien alaosien kanssa. valehaku ja UPDATE -operaatiot.

Katso myös:

  • Oracle Database Performance Tuning Guide and ” Vihjeiden käyttäminen vihjeiden syntaksissa ja kuvauksessa.

  • Oracle Database Performance Tuning Guide and Oracle Database Concepts – yksityiskohtaiset tiedot rinnakkaisesta DML: stä

DML_table_expression_clause

Lauseke ONLY koskee vain näkymiä. Määritä ONLY syntaksit, jos lausekkeen UPDATE näkymä on näkymä, joka kuuluu hierarkiaan, etkä halua päivittää rivejä mistä tahansa sen alikatselmista.

Katso myös:

”Rajoitukset DML_table_expression_clause -lausekkeelle” ja ”Taulukon päivittäminen: Esimerkkejä”

skeema

Määritä kaava, joka sisältää päivitettävän objektin. Jos jätät pois schema, tietokanta olettaa, että objekti on omassa skeemassasi.

taulukko | näkymä | materialized_view | subquery

Määritä päivitettävän alikyselyn palauttaman taulukon, näkymän, materialisoidun näkymän tai sarakkeiden nimi. UPDATE -lausekkeen antaminen taulukkoon laukaisee kaikki UPDATE -taulukot, jotka liittyvät taulukkoon.

  • Jos määrität view, tietokanta päivittää näkymän perustaulukon.Näkymää ei voi päivittää, paitsi INSTEAD OF -liipaisuilla, jos näkymän määrittävä kysely sisältää jonkin seuraavista rakenteista:

Joukko-operaattori ADISTINCT-operaattori Aggregaatti- tai analyyttinen toiminto AGROUPBY,ORDERBY,MODEL,CONNECTBYtaiSTARTWITHlauseke Kokoelma-lausekeSELECTlista AlakyselySELECT-luettelossaWITH READ ONLYnimetty alakysely liittyy joitain poikkeuksia lukuun ottamatta , kuten dokumentoidaan Oracle Database Administrator’s Guide -oppaassa

  • Et voi päivittää useampaa kuin yhtä perustaulukkoa näkymän kautta.

  • Lisäksi, jos näkymä luotiin WITH CHECK , voit päivittää näkymää vain, jos saadut tiedot täyttävät näkymän määrittävän kyselyn.

  • Jos table tai view -taulukko sisältää yhden tai useampia verkkotunnushakemistosarakkeita, ja tämä käsky suorittaa sopivan indextype-päivitysrutiinin.

  • Et voi päivittää rivejä vain luku -toteutetussa näkymässä. Jos päivität rivit kirjoitettavissa olevassa materialisoidussa näkymässä, tietokanta päivittää rivit taustalla olevasta säilötaulukosta. Päivitykset korvataan kuitenkin seuraavalla päivitystoiminnolla. Jos päivität rivejä päivitettävässä materialisoidussa näkymässä, joka on osa materialisoitunutta näkymäryhmää, tietokanta päivittää myös vastaavat taulukot.

Katso Lisäksi:

  • Oracle Data Cartridge Developer’s Guide to more for the indextype update routines

  • CREATE MATERIALIZED VIEW for information päivitettävien materialisoitujen näkymien luominen

OSIO | ALAOSA

Määritä osion tai osion nimi ryhmässä table kohdistettu päivityksiin. Sinun ei tarvitse määrittää osion nimeä, kun päivität arvoja ositetussa taulukossa. Joissakin tapauksissa osion nimen määrittäminen voi kuitenkin olla tehokkaampaa kuin monimutkainen where_clause .

Katso myös:

”Viittaaminen osioituihin taulukoihin ja hakemistoihin” ja ”Osion päivittäminen: Esimerkki”

dblink

Määritä täydellinen tai osittainen nimi tietokantalinkistä etätietokantaan, jossa t esine sijaitsee. Voit käyttää tietokantalinkkiä etäobjektin päivittämiseen vain, jos käytät Oracle Database -jakelutoimintoa.

Jos jätät pois dblink,, tietokanta olettaa objektin olevan paikallisesta tietokannasta.

Katso myös:

”Viitaten etätietokantojen objekteihin” tietoja tietokantalinkkeihin viittaamisesta

subquery_restriction_clause

Rajoita alikyselyä subquery_restriction_clause -toiminnolla jollakin seuraavista tavoista:

VAIN LUE LUE Määritä WITH READ ONLY osoittaa, että taulukkoa tai näkymää ei voi päivittää.

TARKISTUSVAIHTOEHDOLLA Määritä WITH CHECK OPTION osoittaaksesi, että Oracle Database kieltää kaikki muutokset taulukossa tai näkymässä rivit, jotka eivät sisälly alakyselyyn. Kun sitä käytetään DML-käskyn alikyselyssä, voit määrittää tämän lauseen alakyselyssä FROM -lausekkeessa, mutta ei alakyselyssä WHERE lauseke.

RAJOITUSRAJOITUS Määritä rajoituksen CHECK OPTION nimi. Jos jätät tämän tunnisteen pois, Oracle määrittää rajoitukselle automaattisesti muodon SYS_C n nimen, jossa n on kokonaisluku, joka tekee rajoitteen nimi, joka on ainutlaatuinen tietokannassa.

Katso myös:

”WITH CHECK OPTION -lausekkeen käyttö: Esimerkki”

table_collection_expression

table_collection_expression avulla voit ilmoittaa Oraclelle, että collection_expression -arvoa tulisi käsitellä taulukkona kysely- ja DML-operaatioita varten. collection_expression voi olla alikysely, sarake, funktio tai kokoelmarakentaja. Muodosta riippumatta sen on palautettava kokoelma-arvo eli arvo, jonka tyyppi on sisäkkäinen taulukko tai varray. Tätä kokoelman elementtien purkamisprosessia kutsutaan kokoelman poistamiseksi.

Valinnainen plus (+) on merkityksellinen, jos yhdistät lausekkeen TABLE vanhemman kanssa pöytä. + Luo molempien ulomman liitoksen niin, että kysely palauttaa rivit ulkotaulusta, vaikka kokoelma-lauseke on tyhjä.

Huomaa:

Oraclen aiemmissa julkaisuissa kun collection_expression oli alakysely, table_collection_expression ilmaistiin muodossa THE subquery.Tämä käyttö on nyt poistettu käytöstä.

Voit päivittää rivejä taulukossa table_collection_expression käyttämällä toisen taulukon rivejä. Voit esimerkiksi koota neljä neljännesvuosittaista myyntitaulukkoa vuotuiseksi myyntitaulukoksi.

t_alias

Määritä viitetaulukolle, näkymälle tai alikyselylle korrelaation nimi (alias). muualla lausunnossa. Tämä alias vaaditaan, jos DML_table_expression_clause viittaa mihin tahansa objektityypin määritteeseen tai objektityypin menetelmään.

Katso myös:

”Vastaava päivitys: Esimerkki ”

Rajoitukset DML_table_expression_clause-lauseeseen Tähän lausekkeeseen sovelletaan seuraavia rajoituksia:

  • Et voi suorittaa tätä lausetta, jos table tai view -taulukko sisältää kaikki verkkotunnushakemistot, jotka on merkitty IN_PROGRESS tai FAILED.

  • Et voi lisätä osioon, jos jokin asiaankuuluva hakemisto-osio on merkitty UNUSABLE.

  • Et voi määrittää order_by_clause -tietoa DML_table_expression_clause -alikyselyssä.

  • Jos määrität indeksin, hakemisto-osion tai hakemisto-osion, joka on merkitty UNUSABLE, niin lauseke UPDATE epäonnistuu, ellei SKIP_UNUSABLE_INDEXES istunnon parametri on asetettu arvoon TRUE.

Katso myös:

ALTER SESSION lisätietoja SKIP_UNUSABLE_INDEXES istunnon parametri

update_set_clause

update_set_clause antaa sinun asettaa sarakearvoja.

sarake

Määritä päivitettävän objektin sarakkeen nimi. Jos jätät taulukon sarakkeen pois update_set_clause -kohdasta, kyseisen sarakkeen arvo pysyy muuttumattomana.

Jos column viittaa LOB-objekti-määritteeseen, ja sinun on ensin alustettava se arvolla tyhjä tai tyhjä. Et voi päivittää sitä kirjaimella. Lisäksi, jos päivität LOB-arvoa jollakin muulla menetelmällä kuin suoralla UPDATE SQL-käskyllä, sinun on ensin lukittava LOB sisältävä rivi. Lisätietoja on kohdassa for_update_clause.

Jos column on osa ositetun taulukon osiointiavain, niin UPDATE epäonnistuu, jos muutat arvoa sarakkeessa, joka siirtää rivin toiseen osioon tai aliosioon, ellet ota rivin liikettä käyttöön. Katso kohta Luo taulukko tai Vaihda taulukko row_movement_clause.

Lisäksi, jos column on osa osioitu avain luettelo-osioiduista taulukoista, sitten UPDATE epäonnistuu, jos määrität sarakkeelle arvon, jota ei vielä ole partition_value yhden osion luettelo.

alakysely

Määritä alakysely, joka palauttaa täsmälleen yhden rivin kutakin päivitettyä riviä kohti.

  • Jos määrität vain yhden sarakkeen update_set_clause, alikysely voi palauttaa vain yhden arvon.

  • Jos määrität useita sarakkeita update_set_clause, alikyselyn on palautettava niin monta arvoa kuin olet määrittänyt sarakkeet.

  • Jos alakysely ei palauta rivejä, sarakkeelle on määritetty nolla.

  • Jos tämä subquery viittaa etäobjekteihin, niin UPDATE -toiminto voi toimia rinnakkain niin kauan kuin referen ce ei palaa takaisin paikallisen tietokannan objektiin. Jos kuitenkin subquery kohdassa DML_table_expression_clause viittaa mihin tahansa etäobjektiin, niin UPDATE toiminto suoritetaan sarjaan ilman ilmoitusta.

Voit käyttää flashback_query_clause -alikyselyn sisällä päivittääksesi table aiempien tietojen kanssa. Katso lisätietoja lausekkeesta SELECT: n flashback_query_clause-osiosta.

Katso myös:

  • SELECT ja ”Alakyselyjen käyttäminen”

  • parallel_clause CREATE TABLE -dokumentaatiossa

expr

Määritä lauseke, joka ratkaisee vastaavalle sarakkeelle määritetyn uuden arvon.

Katso myös:

Luku 6, ”lausekkeet” expr ja ”Objektitaulukon päivittäminen: Esimerkki”

OLETUS Määritä DEFAULT määrittääksesi sarakkeen aiemmin oletusarvoksi määritetyn arvon arvo sarakkeelle. Jos vastaavalle sarakkeelle ei ole määritetty oletusarvoa, tietokanta asettaa sarakkeen nollaksi.

Rajoitus päivittää oletusarvoihin Et voi määrittää DEFAULT jos päivität näkymää.

VALUE-lauseke

VALUE -lausekkeen avulla voit määrittää objektitaulukon koko rivin.

Rajoitus VALUE-lausekkeelle Voit määrittää tämän lauseen vain objektitaulukolle.

Huomaa:

Jos lisäät merkkijonolitraa RAW -sarakkeeseen, seuraavien kyselyjen aikana Oracle Database tarkistaa koko taulukon eikä käytä mitään hakemistoja, jotka voivat olla RAW -sarakkeessa.

Katso myös:

”Objektitaulukon päivittäminen: Esimerkki”

where_clause

where_clause antaa sinun rajoittaa päivitetyt rivit niille, joille määritetty condition on totta. Jos jätät tämän lausekkeen pois, tietokanta päivittää kaikki taulukon tai näkymän rivit. Katso luvun condition syntaksia luvusta 7, ”Ehdot”.

where_clause määrittää rivit mitkä arvot päivitetään. Jos et määritä where_clause, kaikki rivit päivitetään. Jokaiselle riville, joka täyttää where_clause -arvon, sarakkeet, jotka ovat tasa-arvooperaattorin (=) vasemmalla puolella update_set_clause -kohdassa, asetetaan arvoiksi operaattorin oikealla puolella olevista vastaavista ilmaisuista. Lausekkeet arvioidaan riviä päivitettäessä.

returning_clause

Palautuslauseke hakee rivit, joihin DML-käsky vaikuttaa. Voit määrittää tämän lauseen taulukoille ja toteutuneille näkymille sekä näkymille, joilla on yksi perustaulukko.

Kun käytetään yhtä riviä, DML-käsky, jonka returning_clause voi noutaa sarakelausekkeet käyttämällä kyseistä riviä, rowidia ja REFs kyseiselle riville ja tallentaa ne isäntämuuttujiin tai PL / SQL-muuttujiin.

Kun käytät useita rivejä, DML-käsky, jonka returning_clause tallentaa lausekkeiden, rivien ja REFs arvot lausekkeista, joihin asianomaiset rivit sisältyvät sidosryhmiin.

lausekkeen Jokaisen expr -luettelon kohteen on oltava kelvollinen lausekkeen syntakse.

INTO INTO -lauseke osoittaa, että muutettujen rivien arvot on tallennettava data_item -luettelossa määritettyihin muuttujiin.

data_item Jokainen data_item on isäntämuuttuja tai PL / SQL-muuttuja, joka tallentaa haetun expr -arvon.

Jokaiselle RETURNING -luettelon lausekkeelle sinun on määritettävä vastaava tyyppinen PL / SQL-muuttuja tai isäntämuuttuja INTO luettelo.

Rajoitukset Seuraavia rajoituksia sovelletaan lausekkeeseen RETURNING:

  • expr on rajoitettu seuraavasti:

    • Mille UPDATE ja DELETE lausekkeiden jokaisen expr on oltava yksinkertainen lauseke tai yhden joukon aggregaattifunktion lauseke. Et voi yhdistää yksinkertaisia lausekkeita ja yhden joukon yhdistettyjä funktiolausekkeita samaan returning_clause. INSERT -lausekkeiden jokaisen expr on oltava yksinkertainen lauseke. Koostefunktioita ei tueta lausekkeessa INSERT -lauseke RETURNING.

    • Yksittäiset joukko funktiolausekkeita ei voi sisältää avainsanaa DISTINCT.

  • Jos expr -luettelo sisältää ensisijaisen avaimen sarakkeen tai muun NOT NULL -sarakkeen, sitten päivityslauseke epäonnistuu, jos taulukossa on siihen määritetty BEFORE UPDATE -liipaisin.

  • Et voi määrittää returning_clause monikäyttöiselle lisäykselle.

  • Tätä lauseketta ei voi käyttää rinnakkaisen DML: n tai etäobjektien kanssa.

  • Et voi hakea LONG -tyyppejä tällä lausekkeella.

  • Et voi määrittää tätä lausetta näkymälle, jolle INSTEAD OF -liipaisin on määritetty.

Katso myös :

PL / SQL-käyttäjä ” s Opas ja viite BULK COLLECT -lausekkeen käytöstä useiden arvojen palauttamiseksi kokoelmamuuttujille

error_logging_clause

Error_logging_clause käyttäytyy UPDATE -lausekkeessa samalla tavalla kuin lausekkeessa INSERT. Katso lisätietoja INSERT -lausekkeesta error_logging_clause.

Katso myös:

”Lisääminen taulukkoon virheiden kirjaamisen kanssa: Esimerkki”

Esimerkkejä

Taulukon päivittäminen: Esimerkkejä Seuraavat -lauseke antaa tyhjäpalkkiot kaikille työntekijöille, joilla on työpaikka SH_CLERK:

UPDATE employees SET commission_pct = NULL WHERE job_id = "SH_CLERK";

Seuraava lauseke ylentää Douglas-apurahaa johtajalle osastolta 20 1000 dollarin korotuksella:

UPDATE employees SET job_id = "SA_MAN", salary = salary + 1000, department_id = 120 WHERE first_name||" "||last_name = "Douglas Grant"; 

Seuraava lause lisää työntekijän palkkaa employees taulukko remote -tietokannassa:

UPDATE employees@remote SET salary = salary*1.1 WHERE last_name = "Baer";

Seuraava esimerkki näyttää seuraavat UPDATE -lauseke:

  • update_set_clause: n molemmat muodot yhdessä lauseessa

  • Vastaava alakysely

  • A where_clause päivitettyjen rivien rajoittamiseksi

Edeltävä UPDATE -käsky suorittaa seuraavat toiminnot:

  • Päivittää vain työntekijät, jotka työskentelevät Genevessä tai Münchenissä (sijainnit 2900 ja 2700)

  • Asettaa department_id näille työntekijöille department_id, joka vastaa Bombayta (location_id 2100)

  • Asettaa jokaisen työntekijän palkan 1,1-kertaiseksi osastonsa keskipalkkaan

  • Asettaa jokaisen työntekijän palkkion 1,5-kertaiseksi osastonsa keskimääräiseen palkkioon

Osion päivittäminen: Esimerkki Seuraava esimerkki päivittää sales -taulukon yhden osion arvot:

UPDATE sales PARTITION (sales_q1_1999) s SET s.promo_id = 494 WHERE amount_sold > 1000;

Objektitaulukon päivittäminen: Esimerkki Seuraava käsky luo kaksi objektitaulukkoa, people_demo1 ja people_demo2 , taulukon kokoelmissa luodun people_typ -objektin esimerkkejä. Esimerkki osoittaa, kuinka päivitetään people_demo1 -rivi valitsemalla rivi kohdasta people_demo2:

Esimerkki käyttää VALUE objektiviittaustoiminto sekä SET -lausekkeessa että alikyselyssä.

Vastaava päivitys: Esimerkki Esimerkiksi käyttää vastaavaa alakyselyä sisäkkäisten taulukkorivien päivittämiseen, katso ”Taulukkokokoelmat: esimerkkejä”.

PALAUTUS-lausekkeen käyttö päivityksen aikana: Esimerkki Seuraava esimerkki palauttaa päivitetyn rivin arvot ja tallentaa tuloksen PL / SQL-muuttujat bnd1, bnd2, bnd3:

seuraava esimerkki osoittaa, että voit määrittää yhden joukon aggregaattifunktion palautuslausekkeen lausekkeeseen:

UPDATE employees SET salary = salary * 1.1 WHERE department_id = 100 RETURNING SUM(salary) INTO :bnd1;

Articles
Previous Post

Osta USA: n verkkokaupoista ja lähetämme Intiaan 2–4 päivässä!

Next Post

Siniset koirarodut - mikä tekee niistä niin kauniita?

Vastaa Peruuta vastaus

Viimeisimmät artikkelit

  • Maailman parhaat valokuvauskoulut, 2020
  • Suvereenit kansalaiset vievät hallitustenvastaisen filosofiansa tielle
  • Stukkokorjauskustannusten opas
  • Muckrakers (Suomi)
  • Tarkka onkologia

Arkistot

  • helmikuu 2021
  • tammikuu 2021
  • joulukuu 2020
  • marraskuu 2020
  • lokakuu 2020
  • syyskuu 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.