Problemas en reporte update un campo en una tabla
Publicado por Alvaro Meoño Wong (3 intervenciones) el 26/02/2016 00:28:22
El reporte me funciona correctamente, solo que al adicionar una formula columna me da error donde estoy realizando el update.
Estoy utilizando Oracle 6i de Reports
He buscado en internet pero me ha sido imposible encontrar la informacion.
El primer SQL es Q_1
El segundo SQL es Q_2
se adiciona en Q_2 la funcion indicada anteriormente.
Estoy utilizando Oracle 6i de Reports
1
2
3
4
5
6
7
8
9
10
function M_PRECIOFormula return Number is
begin
srw.do_sql(
'UPDATE CONCMARTIC
SET M_PRECIO = Q_2.PRECIO_UNI
WHERE C_ART_UNI = Q_2.C_ART_UNI');
commit;
RETURN NULL;
COMMIT;
end;
He buscado en internet pero me ha sido imposible encontrar la informacion.
El primer SQL es Q_1
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
SELECT o.N_COMPA, o.N_ORDEN,
CIA.NOM_COMPA, o.C_Prove, P.nom_Prove, o.t_compra, o.M_DESCUENTO, o.IMP_CONSU,o.IMP_VENTA,
decode(o.Prioridad,1,'URGENTE',
2,'N ',
3,'R ') Priori,
P.Contacto,p.n_telefono,p.N_Fax,
o.F_Orden, o.F_Entrega, o.c_pago, t.des_termpag,
substr(o.observacion,1,64),
substr(o.observacion,65,64),
substr(o.observacion,128,64), --substr(o.observacion,192,64),
substr(o.solicitudes,1,20),o.Ind_Paga,
TOT_COLONES,
MTO_DESC, MTO_CONSUMO, MTO_VENTAS,
TOT_COLONES-MTO_DESC+MTO_CONSUMO+MTO_VENTAS TOTAL_GENERAL,
(TOT_COLONES/M_CAMBIO) TOT_DOLARES,
(MTO_DESC/M_CAMBIO) MDESC_DOL,
(MTO_CONSUMO/M_CAMBIO) MCONS_DOL,
(MTO_VENTAS/M_CAMBIO) MVTAS_DOL,
decode(substr(o.observacion,2,1),'$',
(TOT_COLONES/1)-(MTO_DESC/1)+(MTO_CONSUMO/1)+(MTO_VENTAS/1),
(TOT_COLONES/M_CAMBIO)-(MTO_DESC/M_CAMBIO)+(MTO_CONSUMO/M_CAMBIO)+(MTO_VENTAS/M_CAMBIO)) TOT_GEN_DOL,
M_CAMBIO,
Decode(O.CargarA,'20', 'VER REQ. ADJUNTA', Null,' ', O.CargarA) CargarA,
decode(substr(O.c_depart,1,1),'C','COTO',
'Q','QUEPOS',
O.C_DEPART) depto,
O.solicitado,
O.n_bodega, decode(O.n_compa, 'NUM','BOD: '||B.Nom_Bode,
'UNI','BOD: '||B.Nom_Bode,
'EDN','BOD: EDIFICIO NUMAR') NOM_BODE,
O.c_compra, c.nom_compra, O.C_Depart,
O.copia, o.stock,
decode(substr(o.observacion,2,1),'$','DOLARES','COLONES') INDICA,O.E_ORDENC
FROM CONCORDENC O, conccompra c,
sirh.rhncbodega b, sirh.rhnccompan CIA,
concproved P, concterpag T
WHERE o.N_COMPA = upper(:Cia) AND
-- O.C_COMPRA = UPPER(USER) AND
LTRIM(RTRIM(O.N_ORDEN)) >= LTRIM(RTRIM(:V_ORDEN1)) AND
LTRIM(RTRIM(O.N_ORDEN)) <= LTRIM(RTRIM(:V_ORDEN2)) AND
-- O.E_OrdenC not in ('G','S','N') and
O.T_Compra = :V_COMPRA And
o.N_compa = b.n_compa and
o.n_compa = CIA.n_compa and
-- o.E_ordenc = 'A' and
-- o.T.Compra = 'L' and
o.c_prove = p.c_prove and
o.c_pago = t.c_pago and
O.c_compra = c.c_compra and
O.n_bodega = b.n_bode
El segundo SQL es Q_2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT D.N_COMPA, D.N_ORDEN, D.CANT_ART, A.UNI_MED,
D.C_ARTIC,ROWNUM CONTADOR,
RTrim(LTrim(A.DES_LARGART))||' '||RTrim(LTrim(D.Des_ArtComp))||' '
||Rtrim(LTrim(A.N_Parte1))||' '||Rtrim(LTrim(A.N_Parte2)) Articulo,
D.PRECIO_UNI,
Round(Round(D.PRECIO_UNI*D.CANT_ART*0.2,2)*5,2) M_DETALLE, INCREMENTO,
--Round(Round((D.PRECIO_UNI*D.CANT_ART)/:M_CAMBIO*0.2,2)*5,2) M_DETALLE_D
((D.PRECIO_UNI*D.CANT_ART)/:M_CAMBIO) M_DETALLE_D
--Round(Round(:M_DETALLE/:M_CAMBIO)) M_DETALLE_D
FROM CONCDETORD D, CONCMARTIC A
WHERE D.N_COMPA = :N_COMPA AND
D.N_ORDEN = :N_ORDEN AND
D.C_ART_UNI = A.C_ART_UNI AND
D.E_DETORD = 'A'
se adiciona en Q_2 la funcion indicada anteriormente.
Valora esta pregunta


0