Citation:
INSERT INTO TAB_FAC_ACMPT (VLMNTACMPT, NUM_INT_FAC_ACMPT, NUM_FAC_ACMPT, NUMDOS, NBPART, VLUNIT, NBGRAT, CDTVAUN, VLTXTUN, VLFRAD, CDTVAAD, VLTXTAD, VLASSA, CDTVAAS, VLTXTAS, VLFACI, VLFRAN, CDTVAAN, VLTXTAN, VLFACD, TYPFAC, ETAFAC, DATFAC, TITRE, LI1DEST, LI2DEST, LI1ADR, LI2ADR, LI3ADR, LIBVIL, CODPOS, VLTAXE) VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22,:23,:24,:25,:26,:27,:28,:29,:30,:31,:32)
Bind#0 value=367.2
Bind#1 value=15974
Bind#2 value=1
Bind#3 value=67456
Bind#4 value=29
Bind#5 value=67.02
Bind#6 value=2
Bind#7 value="T0"
Bind#8 value=0
Bind#9 value=0
Bind#10 value="T0"
Bind#11 value=0
Bind#12 value=58.31
Bind#13 value="T0"
Bind#14 value=0
Bind#15 value=332.89
Bind#16 value=0
Bind#17 value="T0"
Bind#18 value=0
Bind#19 value=0
Bind#20 value="C"
Bind#21
Bind#22 value="10/12/2009 0:0:0"
Bind#23
Bind#24
Bind#25 value="NOM XXXXX"
Bind#26 value="AVENUE DES BIGOUDIS"
Bind#27 value="B.P. 32"
Bind#28
Bind#29 value="VILLE YYY"
Bind#30 value="11111"
Bind#31 value=0
Ensuite voici le SELECT FOR UPDATE que fait le bloquant sur TAB_FAC_ACMPT vraismbablement généré automatiquement par Forms 10g :
SELECT VLMNTACMPT, NUM_INT_FAC_ACMPT, NUM_FAC_ACMPT, NUMDOS, NBPART, VLUNIT, NBGRAT, CDTVAUN, VLTXTUN, VLFRAD, CDTVAAD, VLTXTAD, VLASSA, CDTVAAS, VLTXTAS, VLFACI, VLFRAN, CDTVAAN, VLTXTAN, VLFACD, TYPFAC, ETAFAC, DATFAC,TITRE, LI1DEST, LI2DEST, LI1ADR, LI2ADR, LI3ADR, LIBVIL, CODPOS, VLTAXE FROM TAB_FAC_ACMPT WHERE ROWID="AAAVViAAHAAAhf8AAG" FOR UPDATE OF VLMNTACMPT NOWAIT
2- Sauf erreur la requête bloquée serait la suivante :
UPDATE TABDOS SET CODDES=20, CODDOS=1, CODDOST=, CODDOSH=, LIBDOS=”Vacances”, COPETA=”BEL”, CODETA=186, COPANI=”BEL”, CODANI=544, APP_OFF=”N”, NUMAEX=11, CODETM=”P”, CODSEC=”SEC”, NUMDOS=69110, ETADOS=”OP”, NUVERD=1, NUMANN=9, CODUTI=”DOD”, FLIPAI=, DATANN=, DATOPT="10/12/2009 0:0:0", DATCON=, CODREF= WHERE ROWID=:"AAAVVsAAHAAAjsMAAL"
3- A noter que le bloquant et le bloqué ne semblent pas appeler les mêmes données.
Citation:
(TAB_FAC_ACMPT , TABDOS, TABDES)
SQL> desc TAB_FAC_ACMPT;
Nom NULL ? Type
---------------------------------------- -------- ------------------------
NUM_INT_FAC_ACMPT NOT NULL NUMBER(5) => ID
NUMDOS NOT NULL NUMBER(5) => FK de TABDOS
NUM_FAC_ACMPT NOT NULL NUMBER(2)
DATFAC NOT NULL DATE
TYPFAC NOT NULL VARCHAR2(1)
VLUNIT NUMBER(10,2)
NBPART NUMBER(3)
NBGRAT NUMBER(2)
VLFACI NOT NULL NUMBER(16,2)
VLFACD NOT NULL NUMBER(16,2)
VLFRAD NOT NULL NUMBER(5,2)
VLFRAN NOT NULL NUMBER(5,2)
ETAFAC CHAR(1)
VLASSA NUMBER(14,2)
NUMFAV NUMBER(5)
FLCMPT CHAR(1)
VLMNTACMPT NOT NULL NUMBER(16,2)
TITRE VARCHAR2(1)
LI1DEST VARCHAR2(35)
LI2DEST VARCHAR2(40)
LI1ADR VARCHAR2(35)
LI2ADR VARCHAR2(35)
LI3ADR VARCHAR2(35)
LIBVIL VARCHAR2(35)
CODPOS VARCHAR2(10)
CDTVAUN VARCHAR2(3)
VLTXTUN NUMBER(6,4)
CDTVAAD VARCHAR2(3)
VLTXTAD NUMBER(6,4)
CDTVAAN VARCHAR2(3)
VLTXTAN NUMBER(6,4)
CDTVAAS VARCHAR2(3)
VLTXTAS NUMBER(6,4)
VLTAXE NUMBER(16,2)
SQL> desc TABDOS ;
Nom NULL ? Type
----------------------------------------- -------- ----------------
NUMANN NOT NULL NUMBER(2)
NUMDOS NOT NULL NUMBER(5) => ID
CODSEC NOT NULL VARCHAR2(4)
LIBDOS NOT NULL VARCHAR2(60)
ETADOS NOT NULL VARCHAR2(2)
COPETA VARCHAR2(3)
CODETA NUMBER(5)
COPANI VARCHAR2(3)
CODANI NUMBER(5)
CODDES NOT NULL VARCHAR2(2)=>FK de TABDES
CODREF VARCHAR2(8)
NUVERD NUMBER(2)
FLIPAI VARCHAR2(1)
CODUTI VARCHAR2(3)
NUMAEX NOT NULL NUMBER(2)
CODETM CHAR(1)
DATCON DATE
DATOPT DATE
DATANN DATE
ETAFIN CHAR(1)
FLCMPT CHAR(1)
CODDOS VARCHAR2(3)
CODDOST VARCHAR2(1)
CODDOSH NUMBER(1)
APP_OFF VARCHAR2(1)
SQL> desc TABDES;
Nom NULL ? Type
----------------------------------------- ---------------------------
CODDES NOT NULL VARCHAR2(2) => ID
LIBDES NOT NULL VARCHAR2(40)
PRMARP NUMBER(4,2)