
Pasar un query de Oracle a SQL
Publicado por Jhoxan (3 intervenciones) el 02/11/2015 15:52:45
Buenos dias
Tengo un problema en una migracion de una BD. Ya que actualmente esta en Oracle y debo llevar los objetos a SQL. Y tengo un Store Procedure con una sentencia la cual no se como se llevarla a SQL.
Agradeceria mucho su apoyo al respecto.
Tengo un problema en una migracion de una BD. Ya que actualmente esta en Oracle y debo llevar los objetos a SQL. Y tengo un Store Procedure con una sentencia la cual no se como se llevarla a SQL.
Agradeceria mucho su apoyo al respecto.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
DECLARE C_cont CURSOR for
SELECT Cod_Empresa, Cod_Centro_Costo, Fe_Comp, Tipo_Comp,
Nu_Comp, Sec_comp, Cod_Cuenta, Tot_Cuenta, Ti_mov,
Mont_mov, Ti_oper, REF, Fe_Vig, Cod_Centro_Costo_Dest,
Cod_Centro_Costo_Dest_Mat, Con_int, Det_Mov,
Base_Reten, Porcentaje_refe, Base_Divisa, Factor_Cambio2,
Factor_Cambio1, Cod_User, Cod_Serv, Codigo_Fiscal,
Subcodigo_Fiscal, In_Selec_aux, In_Es_Orig,
In_manual, In_Error, In_Validado, Tipo_Auxiliar,
Cod_Auxiliar,Cto_costo
FROM FPV_MOVIMIENTO_AUTOMATICO
WHERE Cod_Empresa = @w_cod_empresa
AND Cod_centro_costo = @w_cco
AND fe_comp = @w_fecha
AND tipo_comp = @w_doc
AND nu_comp = @w_ncomp
AND sec_comp = @w_x
AND id_session = @i_id_session
BEGIN
FOR X3 IN C_cont LOOP
--
-- Normalizacion del Centro de Costo a 8 digitos, aplica solo a los Cuentas Contables
-- que empienzan en '4' y '5'
--
IF substring(x3.Cod_Cuenta,1,1) IN ('4','5') THEN
BEGIN
SELECT DECODE(LENGTH(x3.Cto_costo),'5',LPAD(x3.Cto_costo,6,'0') || '00','6',x3.Cto_costo || '00','7',LPAD(x3.Cto_costo,8,'0'),x3.Cto_costo)
INTO x3.Cto_costo
FROM dual
END;
ELSE
select x3.Cto_costo = 0
END IF
--
--
BEGIN
INSERT INTO Nmm027u
(Cod_Empresa, Cod_Centro_Costo, Fe_Comp,
Tipo_Comp, Nu_Comp, Sec_comp,
Cod_Cuenta, Tot_Cuenta, Ti_mov,
Mont_mov, Ti_oper, REF,
Fe_Vig, Cod_Centro_Costo_Dest, Cod_Centro_Costo_Dest_Mat,
Cod_nit, Det_Mov, Base_Reten,
Porcentaje_rete, Base_Divisa, Factor_Cambio2,
Factor_Cambio1, Cod_User, Cod_Serv,
Codigo_Fiscal, Subcodigo_Fiscal, In_Selec_aux,
In_Es_Orig, In_manual, In_Error,
In_Validado, Tipo_Auxiliar, Cod_Auxiliar, Cto_Costo)
VALUES(x3.Cod_Empresa, x3.Cod_Centro_Costo, x3.Fe_Comp,
x3.Tipo_Comp, x3.Nu_Comp, x3.Sec_comp,
x3.Cod_Cuenta, x3.Tot_Cuenta, x3.Ti_mov,
x3.Mont_mov, x3.Ti_oper, x3.REF,
x3.Fe_Vig, x3.Cod_Centro_Costo_Dest, x3.Cod_Centro_Costo_Dest_Mat,
x3.Cod_nit, x3.Det_Mov, x3.Base_Reten,
x3.Porcentaje_refe, x3.Base_Divisa, x3.Factor_Cambio2,
x3.Factor_Cambio1, x3.Cod_User, x3.Cod_Serv,
x3.Codigo_Fiscal, x3.Subcodigo_Fiscal, x3.In_Selec_aux,
x3.In_Es_Orig, x3.In_manual, x3.In_Error,
x3.In_Validado, x3.Tipo_Auxiliar, x3.Cod_Auxiliar, x3.Cto_costo)
EXCEPTION WHEN OTHERS THEN
INSERT INTO FPV_ERRORES_CONTABLES
VALUES(@i_compania, @i_id_session, @w_cco, @w_fecha,
w_doc, X3.Nu_Comp, X3.Sec_comp, X3.Cod_Cuenta,
x3.Ti_mov, X3.Mont_mov, X3.Det_Mov);
select @w_error = 1
EXIT
END
END LOOP
END
IF @w_error = 1 THEN
EXIT
END IF;
END LOOP
Valora esta pregunta


0