SQL Server - REPLICAR DATOS EN FORMA AUTOMATICA

   
Vista:

REPLICAR DATOS EN FORMA AUTOMATICA

Publicado por Ariel (6 intervenciones) el 25/06/2013 23:17:33
Estimados,

Tengo el siguiente problema y he estado casi dos días en esto sin encontrar una solución óptima, necesito replicar instantaneamente los registros de una tabla_oracle a una tabla_mssql, es decir por cada nuevo registro que se genere en oracle lo escriba instantaneamente el mssql.

He intentado con el tipico INSERT INTO SELECT pero no me sirvió ya que no aguanta traspasar más 250 registros, y necesito al menos tener una holgura de 1000 registros y que los insertados no se repitan.

En SQL Server tengo un Linked Server hacia oracle y las consultas las estoy haciendo desde SQL hacia Oracle con OPENQUERY (2 Servers).

Espero me puedan ayudar o si alguien tiene por ahi en su base de datos de pruebas algún SP polvoriento sin uso y que sirva, me lo envía por favor.

Gracias Maestros!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias Islas Gonzalez

REPLICAR DATOS EN FORMA AUTOMATICA

Publicado por Isaias Islas Gonzalez (3186 intervenciones) el 26/06/2013 00:26:09
Toma, de tu tabla de SQL SERVER, un dato que te sirva como "base" para saber, que vas a replicar, por ejemplo, un consecutivo, una fecha, etc.

Asi, cuando repliques, solo lo haras de aquellos registros que te hacen falta en SQL Server, que tienes en Oracle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

REPLICAR DATOS EN FORMA AUTOMATICA

Publicado por Ariel (6 intervenciones) el 26/06/2013 15:31:32
Tienes algun ejemplo para modificar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

REPLICAR DATOS EN FORMA AUTOMATICA

Publicado por Ariel (6 intervenciones) el 28/06/2013 22:49:05
Masters,

Tengo esto, la idea es que el sp pase registros de una tabla oracle a mssql sin repetir los registros insertados que ya contiene la tabla mssql, espero puedan ayudarme donde estoy cometiendo el error.


CREATE PROCEDURE [dbo].[REPLICA_VTA_FACTURA_ORACLE_TO_MSSQL]
AS
IF NOT EXISTS (SELECT NUMFAC FROM VTA_FACTURA)
BEGIN
INSERT INTO BASESQL.dbo.VTA_FACTURA
(SUCUR,DEPTO,IMPRESORA,CORFAC,NUMFAC,ANNOFAC,NUMVTA,TIPFAC,TIPMOT,ANNO,RUT,CODCLIE,FECHA
,FECVENCI,ESTADO,NETO,IMPTO,TOTAL,FECDIG,CODRESP,EXENTO,TIPVTA,TCRED,DESCTO,OBSERVA,TVISA
,RECARGO,NETO_SINDESCTO,NUMLIQ,RUT2,ERROR_CC,IMPTO1,PORC_IMPTO1,BODEGA,TIPO_CLIENTE,NOMBRE
,NOMBRE2,ESTADO_CONTA,CON_GUIA,HORA_EMISION,QUIEN_RETIRA,SE_PAGO_COMISION,PERIODO_PAGO_COMISION
,RESP_AUTORIZA_VENTA,MONTO_DEUDA_VIGENTE)
SELECT
SUCUR,DEPTO,IMPRESORA,CORFAC,NUMFAC,ANNOFAC,NUMVTA,TIPFAC,TIPMOT,ANNO,RUT,CODCLIE,FECHA
,FECVENCI,ESTADO,NETO,IMPTO,TOTAL,FECDIG,CODRESP,EXENTO,TIPVTA,TCRED,DESCTO,OBSERVA,TVISA
,RECARGO,NETO_SINDESCTO,NUMLIQ,RUT2,ERROR_CC,IMPTO1,PORC_IMPTO1,BODEGA,TIPO_CLIENTE,NOMBRE
,NOMBRE2,ESTADO_CONTA,CON_GUIA,HORA_EMISION,QUIEN_RETIRA,SE_PAGO_COMISION,PERIODO_PAGO_COMISION
,RESP_AUTORIZA_VENTA,MONTO_DEUDA_VIGENTE

FROM OPENQUERY(BASEORACLE, 'SELECT * FROM DESARROLLO.VTA_FACTURA@BASEORACLE WHERE ANNO=13 AND QUIEN_RETIRA=''DESPACHO''')
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias Islas Gonzalez

REPLICAR DATOS EN FORMA AUTOMATICA

Publicado por Isaias Islas Gonzalez (3186 intervenciones) el 29/06/2013 23:59:01
Debes unir tus 2 tablas (SQL y Oracle), mediante un JOIN y hacer el INSERT de todas aquellas que NO EXISTAN (NOT EXISTS) en tu tabla de SQL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

REPLICAR DATOS EN FORMA AUTOMATICA

Publicado por arturo cornejo (1 intervención) el 12/12/2013 15:56:24
Ariel favor mándame un correo, ya que no puedo configurar bien el linked server
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar