[Re:]Poradi triggeru u ORACLE / LONG - ORACLE ONLY

ludek.rasek na centrum.cz ludek.rasek na centrum.cz
Středa Únor 14 11:07:48 CET 2001


Vyzjistil jsem od kolegy presny popis problemu ve verzi 8.1.6
(Alpha-Tru64). - aplikace tvorena pomci ProC (embeded SQL)

--CITE BEGIN --
1.)  After insert trigger of row se vykonává před kontrolou cizích
klíčů. Pokud ovšem provádíte insert pole, tak se toto projeví
pouze u 1 položky.

Následky: Pokud počítáte s kontrolou na úrovni cizích klíčů a
nemáte ošetřeno na úrovni triggeru, tak insert do tabulky končí
chybou: "No data found"

Ošetření: Kontrolu provádět i na úrovni triggeru a nespoléhat na
cizí klíč


2.) Při insert pole do tabulky se při zpracování 2. a další
položky již kontrolují cizí klíče před AFTER ROW INSERT TRIGGERem,
avšak při chybě se správně nenaplní struktura SQLCA.SQLCODE a není
možno zjistit, ve které položce k chybě došlo.

Následky: Při zpracování davkoveho insertu jako chybu vždy ORACLE
vrací chybu na 1. položky i přesto, že vznikla např. v desáté.


3.) Pokud nad tabulkou není AFTER ROW INSERT TRIGGER a insertuje
se pole, tak kontrola na cizí klíče probíhá pouze na 1. položce!!!!
--CITE END--

Problematicke tedy je davkove vkladani do tabulky (hodnoty v
poli), bez ktereho vsak neni mozne efektivne implementovat
rozsahlejsi plneni tabulek.

Chybu c. 1 jiz oracle oznacil za chybu urcite, ostatni zrejme
take, ale to nevim jiste.

Ludek


K chatování je tu http://www.XChat.cz
Založte si svůj mail na http://mail.centrum.cz


Další informace o konferenci Databases