Insert into NOME TABELLA select ..... (Differenza numero record)

lunedì 29 novembre 2010 - 14.23
Tag Elenco Tags  Oracle 10g

Pongo Profilo | Senior Member

Ciao a tutti,

ho un problema con oracle 10. Vi dico già da subito che la query che lancio, da trigger, per alcuni codici negozi funziona, per altri no.

La cosa strana è questa:

se lancio la select tiro fuori ad esempio 53 record. Se lancio la stessa query preceduta da in inser into, mi restituisce 50000 e passa righe.

Penso sia un comportamente abbastanza bizzarro, ma non riesco a capire a cosa sia dovuto.
Al di la di postare il codice, se la select lanciata singolarmente restituisce n record, perchè questi vengono "moltiplicati" nell'insert?

dinoxet Profilo | Senior Member

ciao,
prova a postarci il create della tabella
ed il codice del trigger

magari si alluppa da qualche parte...


DINOXET
__________________________________________
impossible is only a word

Pongo Profilo | Senior Member

Creazione tabella:
CREATE TABLE ETICHETTE_DATI
(
AZIENDA VARCHAR2(2 BYTE) NOT NULL,
COD_NEG NUMBER(9) NOT NULL,
COD_ART NUMBER(9) NOT NULL,
TIPO_ETICHETTA VARCHAR2(4 BYTE) NOT NULL,
NUMERO_ETICHETTE NUMBER(6) NOT NULL,
DES_ETICHETTA VARCHAR2(40 BYTE) NOT NULL,
PREZZO_VENDITA NUMBER(9,2) NOT NULL,
PREZZO_CHIARO NUMBER(9,2),
UM_PREZZO_CHIARO VARCHAR2(2 BYTE),
MISURA_PREZZO_CHIARO NUMBER(9,3),
COD_IMBALLO NUMBER(9),
QTA_X_IMBALLO NUMBER(9,3),
COD_FOR NUMBER(9),
COD_ORDINE VARCHAR2(20 BYTE),
UM_ACQUISTO VARCHAR2(2 BYTE),
DATA_INIZIO_VALIDITA DATE,
DATA_STAMPA_ETICHETTA DATE,
TITOLO_PROMO VARCHAR2(40 BYTE),
DATA_INIZIO_PROMO DATE,
DATA_FINE_PROMO DATE,
PREZZO_PROMO NUMBER(9,2),
SCONTO_PROMO NUMBER(5,2),
DATA_MODIFICA DATE,
AUTORE VARCHAR2(50 BYTE),
COD_BARRE VARCHAR2(14 BYTE),
CORSIA VARCHAR2(3 BYTE),
MONTANTE NUMBER(2),
PIANO NUMBER(2),
TIPO_PREZZO VARCHAR2(15 BYTE),
MXN_ACQUISTATI NUMBER(2),
MXN_PAGATI NUMBER(2),
UM_NO_PEZZI VARCHAR2(5 BYTE)
)

Procedura:

insert into etichette_dati (
azienda, cod_neg, cod_art,
tipo_etichetta, numero_etichette, des_etichetta,
prezzo_vendita, prezzo_chiaro, um_prezzo_chiaro,
misura_prezzo_chiaro, cod_imballo, qta_x_imballo,
cod_for, cod_ordine, um_acquisto,
data_inizio_validita, data_stampa_etichetta, titolo_promo,
data_inizio_promo, data_fine_promo, prezzo_promo,
sconto_promo, data_modifica, autore,
cod_barre, corsia, montante,
piano)
(select
'01',to_number(inTesNeg),b.cod_art,
'C',1,nvl(deseti,desart),
pvatt2/100,pvatt2*1000/decode(pezzat,0,1,pezzat),unmi,
pezzat/1000,0,qtacar,
decode(codfor,1,22083,codfor),decode(codmsi,'000000',' ',codmsi),' ',
trunc(sysdate),null,null,
null,null,null,
null,sysdate,'sql_da_more',
det_ean,nvl(corsia,' '),nvl(montante,0),nvl(piano,0)
from negozi.more_dati_righe,usrdev.ciccart a,usrdev.ciccean e,usrdev.articolo_codici_barre b,usrdev.display_negozio d
where det_idx=inTesIdx
and to_number(det_ean)=to_number(cod_barre)
and sysdate between data_inizio_validita and data_fine_validita
and to_number(det_ean)=to_number(codean)
and e.codart=a.codart
and unmi<>'ES'
and '01'=d.azienda(+)
and to_number(inTesNeg)=d.cod_neg(+)
and b.cod_art=d.cod_art(+)
union
select
'01',to_number(inTesNeg),b.cod_art,
'C',1,nvl(deseti,desart),
pvatt2/100,0,unmi,
pezzat/1000,0,qtacar,
decode(codfor,1,22083,codfor),decode(codmsi,'000000',' ',codmsi),' ',
trunc(sysdate),null,null,
null,null,null,
null,sysdate,'sql_da_more',
det_ean,nvl(corsia,' '),nvl(montante,0),nvl(piano,0)
from negozi.more_dati_righe,usrdev.ciccart a,usrdev.ciccean e,usrdev.articolo_codici_barre b,usrdev.display_negozio d
where det_idx=inTesIdx
and to_number(det_ean)=to_number(cod_barre)
and sysdate between data_inizio_validita and data_fine_validita
and to_number(det_ean)=to_number(codean)
and e.codart=a.codart
and unmi='ES'
and '01'=d.azienda(+)
and to_number(inTesNeg)=d.cod_neg(+)
and b.cod_art=d.cod_art(+));

Pongo Profilo | Senior Member

Uhm.... nessuna idea?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5