ďťż
 
[Oracle] Update tabeli ďťż
 
[Oracle] Update tabeli
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[Oracle] Update tabeli



juras - 13-08-2006 00:22
[Oracle] Update tabeli
  Witam
Mam dwie tabelki, z ktorych zawartosc jednej służy do update'owania drugiej.
Niby proste, ale pod uwage brana jest jednoczesnie zawartosc dwoch kolumn i
jesli taki zestaw nie wystepuje w tabeli A, to rekord ma byc dolozony z B.
Zalezy mi na w miare szybkim rozwiazaniu - obie tabelki licza sobie po okolo
400.000 rekordow

Z gory dziekuje za wszelkie podpowiedzi

pozdrawiam
Jurek





Sławomir Szyszło - 13-08-2006 00:22

  Dnia Thu, 10 Aug 2006 20:34:38 +0200, "juras" <alskar@o2.pl> wklepał(-a):

>Witam
>Mam dwie tabelki, z ktorych zawartosc jednej służy do update'owania drugiej.
>Niby proste, ale pod uwage brana jest jednoczesnie zawartosc dwoch kolumn i
>jesli taki zestaw nie wystepuje w tabeli A, to rekord ma byc dolozony z B.
>Zalezy mi na w miare szybkim rozwiazaniu - obie tabelki licza sobie po okolo
>400.000 rekordow

W Oracle (chyba od wersji 9i) jest taka konstrukcja:

(...)
WHERE (kolumna1, kolumna2) IN | NOT IN
(select kolumna3, kolumna4 FROM tabela2 ...)

Mam nadzieję, że to pomoże, jeśli nie to napisz obszerniej co chcesz uzyskać.
--
Sławomir Szyszło mailto:slaszysz@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?grou...mp.bazy-danych




Artur - 13-08-2006 00:22

  > Mam dwie tabelki, z ktorych zawartosc jednej służy do update'owania drugiej.
> Niby proste, ale pod uwage brana jest jednoczesnie zawartosc dwoch kolumni
> jesli taki zestaw nie wystepuje w tabeli A, to rekord ma byc dolozony z B.
> Zalezy mi na w miare szybkim rozwiazaniu - obie tabelki licza sobie po okolo
> 400.000 rekordow

Potrzebujesz takiej konstrukcji jak MERGE, którą na przykład
obsługuje DB2 (http://ibm.com/db2/express). Poszukaj, czy Twoja baza
to potrafi, przypuszczam, że tak:

MERGE INTO tabela A
USING (wybierasz zapytaniem rekordy z tabeli B)
ON ( tu porównujesz pola tabeli A i B, najlepiej klucze)

WHEN MATCHED
Uaktualniasz tabele A rekordem z B
WHEN NOT MATCHED
Wstawiasz rekord z B do A

Działa wydajnie, ponieważ jest wewnętrznie optymalizowane przez
bazę danych jako jeden ciąg operacji (jedna instrukcja SQL).

Przykłady na:
http://publib.boulder.ibm.com/infoce...c/r0010873.htm

Pozdrawiam,

-- Artur Wroński




juras - 13-08-2006 00:22

  > W Oracle (chyba od wersji 9i) jest taka konstrukcja:
>
> (...)
> WHERE (kolumna1, kolumna2) IN | NOT IN
> (select kolumna3, kolumna4 FROM tabela2 ...)
>
> Mam nadzieję, że to pomoże, jeśli nie to napisz obszerniej co chcesz
uzyskać.
> --
Dzięki
Przetestuje to jutro w pracy

pozdrawiam
Jurek
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= Oracle 19g +Insert +Insert +Insert... [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?= [Oracle] =?ISO-8859-2?Q?=A3=B1czenie_wierszy_z_zapytania_?==?ISO-8859-2?Q?w_jeden_string?= =?iso-8859-2?q?[oracle_10g]_jak_da=E6_grant_do_gv$=2E=2E=2E=2E_=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ptsite.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com