ďťż
 
ORACLE - zdarzenie o zmianach w tabelach ďťż
 
ORACLE - zdarzenie o zmianach w tabelach
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 - zdarzenie o zmianach w tabelach



szyfrantd - 13-09-2007 00:04
ORACLE - zdarzenie o zmianach w tabelach
  Witam wszystkich grupowiczow!

Pytanie dotyczy tego, w jaki sposob przechwycic, otrzymac komunikat z
serwera oracle-owego, ze w tabeli np. A, uzytkownik "Rysiu" dokonal zmian
(INSERT, UPDATE, DELETE). Wiem, ze w Interbase czy MSSQL jest to mozliwe, do
oracle-a nigdy nie bylem przekonany (moze to zle), a teraz musze napisac
program dla tego systemu zarzadzania baza danych.

Siegnalem do google ale dla oracle znalazlem jedynie podpowiedz zeby
utworzyc "semafor" (kolejna tabele) i w nim odnotowywac wszelkie zmiany.

Dziekuje za podpowiedz!
Pozdrawiam....
Darek

Ps: A mozna w Oraclu jakims poleceniem systemowym sprawdzic jaki ostatni
rekord zostal wstawiony (insert) do tabeli A i otrzymac jego ID???
Thx





michal.zglinski@gmail.com - 13-09-2007 00:04

  > Pytanie dotyczy tego, w jaki sposob przechwycic, otrzymac komunikat z
> serwera oracle-owego, ze w tabeli np. A, uzytkownik "Rysiu" dokonal zmian
> (INSERT, UPDATE, DELETE). Wiem, ze w Interbase czy MSSQL jest to mozliwe, do
> oracle-a nigdy nie bylem przekonany (moze to zle), a teraz musze napisac
> program dla tego systemu zarzadzania baza danych.

Triggerami.
Tutaj szybka pomoc
http://www.adp-gmbh.ch/ora/sql/create_trigger.html

Pozdrawiam
Michal




dap - 13-09-2007 00:04

  szyfrantd wrote:
> Witam wszystkich grupowiczow!
>
> Pytanie dotyczy tego, w jaki sposob przechwycic, otrzymac komunikat z
> serwera oracle-owego, ze w tabeli np. A, uzytkownik "Rysiu" dokonal zmian
> (INSERT, UPDATE, DELETE). Wiem, ze w Interbase czy MSSQL jest to mozliwe, do
> oracle-a nigdy nie bylem przekonany (moze to zle), a teraz musze napisac
> program dla tego systemu zarzadzania baza danych.
>
> Siegnalem do google ale dla oracle znalazlem jedynie podpowiedz zeby
> utworzyc "semafor" (kolejna tabele) i w nim odnotowywac wszelkie zmiany.
>
> Dziekuje za podpowiedz!
> Pozdrawiam....
> Darek
>
>
> Ps: A mozna w Oraclu jakims poleceniem systemowym sprawdzic jaki ostatni
> rekord zostal wstawiony (insert) do tabeli A i otrzymac jego ID???
> Thx

Hej, w 10g jest możliwość używania tz. flashback query, dzieki czemu
widzisz co i kiedy sie działo w tabeli.

Zobacz na ten kod

drop table ala ;
create table ala (ala number) ;

insert into ala(ala) values(1) ;
commit ;
insert into ala(ala) values(3) ;
commit ;
insert into ala(ala) values(1) ;
commit ;
insert into ala(ala) values(4) ;
commit ;
insert into ala(ala) values(8) ;
commit ;
insert into ala(ala) values(3) ;
commit ;
delete from ala where ala < 3 ;
commit ;
insert into ala(ala) values(1) ;
commit ;
update ala set ala = -10 where ala = 1 ;
commit ;
insert into ala(ala) values(33) ;
commit ;
insert into ala(ala) values(34) ;
commit ;
insert into ala(ala) values(343) ;
commit ;
delete from ala ;

col ala for 9999
col versions_opertion for a1
col versions_xid for a20
col versions_starttime for a21
col versions_endtime for a21
col versions_startscn for 999999999
col versions_endscn for 999999999

select versions_operation, versions_xid
, versions_starttime, versions_endtime
, versions_startscn , versions_endscn
, ala from ala
versions between scn minvalue and maxvalue ;

V VERSIONS_XID VERSIONS_STARTTIME VERSIONS_ENDTIME
VERSIONS_STARTSCN VERSIONS_ENDSCN ALA
- -------------------- --------------------- ---------------------
----------------- --------------- -----
I 04000A00F72D0000 12-SEP-07 03.24.35 PM
39713247 343
I 0A002700CB2D0000 12-SEP-07 03.24.35 PM
39713245 34
I 03000700343D0000 12-SEP-07 03.24.35 PM
39713243 33
U 08002000623D0000 12-SEP-07 03.24.35 PM
39713241 -10
I 090022005B3D0000 12-SEP-07 03.24.35 PM 12-SEP-07 03.24.35 PM
39713238 39713241 1
D 07000900102E0000 12-SEP-07 03.24.35 PM
39713236 1
D 07000900102E0000 12-SEP-07 03.24.35 PM
39713236 1
I 06000C00603D0000 12-SEP-07 03.24.35 PM
39713233 3
I 02001800353D0000 12-SEP-07 03.24.35 PM
39713231 8
I 010017001C2E0000 12-SEP-07 03.24.35 PM
39713229 4
I 03000D002E3D0000 12-SEP-07 03.24.35 PM 12-SEP-07 03.24.35 PM
39713227 39713236 1

V VERSIONS_XID VERSIONS_STARTTIME VERSIONS_ENDTIME
VERSIONS_STARTSCN VERSIONS_ENDSCN ALA
- -------------------- --------------------- ---------------------
----------------- --------------- -----
I 05000B00C63E0000 12-SEP-07 03.24.35 PM
39713225 3
I 04002000F72D0000 12-SEP-07 03.24.35 PM 12-SEP-07 03.24.35 PM
39713223 39713236 1
D 09002700503D0000 12-SEP-07 03.22.59 PM
39713189 343
D 09002700503D0000 12-SEP-07 03.22.59 PM
39713189 -10
D 09002700503D0000 12-SEP-07 03.22.59 PM
39713189 3
D 09002700503D0000 12-SEP-07 03.22.59 PM
39713189 8
D 09002700503D0000 12-SEP-07 03.22.59 PM
39713189 4
D 09002700503D0000 12-SEP-07 03.22.59 PM
39713189 34
D 09002700503D0000 12-SEP-07 03.22.59 PM
39713189 3
D 09002700503D0000 12-SEP-07 03.22.59 PM
39713189 33
12-SEP-07 03.22.59 PM
39713189 33

V VERSIONS_XID VERSIONS_STARTTIME VERSIONS_ENDTIME
VERSIONS_STARTSCN VERSIONS_ENDSCN ALA
- -------------------- --------------------- ---------------------
----------------- --------------- -----
12-SEP-07 03.22.59 PM
39713189 3
12-SEP-07 03.22.59 PM
39713189 34
12-SEP-07 03.22.59 PM
39713189 4
12-SEP-07 03.22.59 PM
39713189 8
12-SEP-07 03.22.59 PM
39713189 3
12-SEP-07 03.22.59 PM
39713189 -10
12-SEP-07 03.22.59 PM
39713189 343

dap




Thomas Olszewicki - 13-09-2007 00:04

  On Sep 12, 5:49 am, "szyfrantd" <szyfra...@poczta.onet.pl> wrote:
> Witam wszystkich grupowiczow!
>
> Pytanie dotyczy tego, w jaki sposob przechwycic, otrzymac komunikat z
> serwera oracle-owego, ze w tabeli np. A, uzytkownik "Rysiu" dokonal zmian
> (INSERT, UPDATE, DELETE). Wiem, ze w Interbase czy MSSQL jest to mozliwe, do
> oracle-a nigdy nie bylem przekonany (moze to zle), a teraz musze napisac
> program dla tego systemu zarzadzania baza danych.
>
> Siegnalem do google ale dla oracle znalazlem jedynie podpowiedz zeby
> utworzyc "semafor" (kolejna tabele) i w nim odnotowywac wszelkie zmiany.
>
> Dziekuje za podpowiedz!
> Pozdrawiam....
> Darek
>
> Ps: A mozna w Oraclu jakims poleceniem systemowym sprawdzic jaki ostatni
> rekord zostal wstawiony (insert) do tabeli A i otrzymac jego ID???
> Thx

Darek,
Duzo mozliwosci, ale zaleza od versji Oracle.
Podaj pelna versje np: 10.2.0.2 EE (Enterprise edition).
Thomas
  • 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] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [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?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anette.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