TIPS

  • Logfile
    Si necesitas reiniciar el log sin dar de baja el manejador, ejecuta el comando:  #cat /dev/null...

Quién está en linea

Tenemos 18 invitados conectado

Acceso

Inciar sesión

Buscar

DBASupport
Welcome, Guest
Please Login or Register.    Lost Password?
SISS de MySQL a SQL
(1 viewing) 1 Guest
Go to bottom
TOPIC: SISS de MySQL a SQL
#1827
Erzengel
Junior Boarder
Posts: 39
graphgraph
User Offline Click here to see the profile of this user
SISS de MySQL a SQL 6 Months, 3 Weeks ago Karma: 0
Buen Día Amigos
Estoy tratando de migrar datos de una BD MySQL a una SQL Server 2005
con un SISS ya que es muchísima información la que tengo que pasar, son aproximadamente 75 GB (entre menos fraccionado lo haga mejor), ya genere un ODBC con la conexión a MySQL en una tarea de flujo tengo un "Data Reader Source" conectado a MySQL que va a un "SQL Server Destination" con la conexión a SQL Server. pero me marca un error que a continuación describo

Error at DataFlow Task[SQL Server Destination [537]]: The column "ColumnaX" can't be inserted because the conversion between types DT_I8 and DT_I4 is not support.

Error at DataFlow Task[SQL Server Destination [537]]: The column "ColumnaX" can't be inserted because the conversion between unicode and non-unicode string data types.

Así en cada columna dependiendo el tipo de dato, intente poner en medio de ellos un Data conversión seleccionando string[DT_STR] y me da el mismo error.

Los tipos de datos de las tablas en teoría son los mismos, y lo raro es que lo hago con el Task > import data de SQL Server y si funciona el problema es que solo puedo pasar poca información ya que me lanza un error creo, que es por el timeout, si saben alguna manera de aumentar el timeout en la conexión del import también es bienvenido.

Agradezco de antemano cualquier ayuda.
 
Logged Logged
  The administrator has disabled public write access.
#1828
mherlindo
Moderator
Posts: 563
graph
User Offline Click here to see the profile of this user
Re:SISS de MySQL a SQL 6 Months, 3 Weeks ago Karma: 3
Sobre la conversión de DT_I8 a DT_I4, quiere decir que estas tratando de pasar un entero de 8 bytes a uno de 4 bytes intenta con un int o bigint y el de un unicoda a uno non-unicode debes de usar un typo de dato unicode en este trata da usar un typo de dato nvarchar o ntext.
 
Logged Logged
 
DBASuppot Team
  The administrator has disabled public write access.
#1829
Erzengel
Junior Boarder
Posts: 39
graphgraph
User Offline Click here to see the profile of this user
Re:SISS de MySQL a SQL 6 Months, 3 Weeks ago Karma: 0
Al parecer ese el problema, el unico detalle es que yo tengo integer en mi tabla de SQL y en el data conversion no me aparece integer como tal, yo se que el dato de MySQL lleva como 6 caracteres alguna sugerencia?
Agradezco que me encaminaras en el problema y agradeceria aun mas tu sugerencias.
Saludos Cordiales
 
Logged Logged
  The administrator has disabled public write access.
#1830
mherlindo
Moderator
Posts: 563
graph
User Offline Click here to see the profile of this user
Re:SISS de MySQL a SQL 6 Months, 2 Weeks ago Karma: 3
Porque no pasas directamente esos tipos de datos sin convertirlos.

Ya intentantes seguir este procedimiento.

technet.microsoft.com/en-us/library/cc966396.aspx
 
Logged Logged
 
DBASuppot Team
  The administrator has disabled public write access.
#1831
Erzengel
Junior Boarder
Posts: 39
graphgraph
User Offline Click here to see the profile of this user
Re:SISS de MySQL a SQL 6 Months, 2 Weeks ago Karma: 0
Como lo comentaste tenia mal la longitud del campo, ahora me topo con otro problema respecto al mismo caso estoy haciendo un qry que trae los siguientes datos

Select CONSULTA_ID, INICIO_TRANSACCION, IF(FIN_TRANSACCION = '0000-00-00 00:00:00', '1900-01-01 00:00:00', FIN_TRANSACCION) FIN_TRANSACCION, CREATED_BY, CREATED_DATE, UPDATED_BY, UPDATED_DATE, FECHA_SOLICITUD, EJECUTIVO_NOMBRE, IFNULL(EJECUTIVO_ID,0) EJECUTIVO_ID, SUCURSAL_NOMBRE, IFNULL(SUCURSAL_ID,0) SUCURSAL_ID, CLIENTE_NOMBRE, ERROR, SCORE From Consulta Where INICIO_TRANSACCION between '2009-01-14' and '2009-01-20'

Las fechas son timestamp en MySQL y en SQL las tengo como Date, el problema es que algunos datos tienen como fecha '0000-00-00 00:00:00', lo trate de solucionar con el IF pero al momento de recibir el parámetro FIN_TRANSACCION en el DataReader source lo envía como "byte stream [DT_BYTES]", estoy usando un data conversión pero solo lo puedo convertir a muy pocos tipos de datos uno de ellos es el DT_STR pero lo necesito en datetime o date.
trate de solucionarlo dos formas
1.- Una poniendo el now() en el qry en vez de la fecha deseada a ver si lo mandaba como date pero sigue enviándolo como byte stream
2.- Lo trate de poner el dt_str y me marca el siguiente error:

Error: 0xC020901C at Data Flow Task, OLE DB Destination [11042]: There was an error with input column "Copy of FIN_TRANSACCION" (11310) on input "OLE DB Destination Input" (11055). The column status returned was: "The value could not be converted because of a potential loss of data.".

3.- Poner otro Data Conversion pero también me marca el siguiente error
Error: 0xC02020C5 at Data Flow Task, Data Conversion 1 [11816]: Data conversion failed while converting column "Copy of FIN_TRANSACCION" (10404) to column "Copy of Copy of FIN_TRANSACCION" (12075). The conversion returned status value 2 and status text "The value could not be converted because of a potential loss of data.".

Para realizar el deposito de los datos es mediante un SQL Server Destination.

Agradezco su ayuda de antemano
 
Logged Logged
  The administrator has disabled public write access.
#1832
mherlindo
Moderator
Posts: 563
graph
User Offline Click here to see the profile of this user
Re:SISS de MySQL a SQL 6 Months, 2 Weeks ago Karma: 3
Te recomiendo que las fechas las pases a sql server con el formato YYYY-MM-DD HH:MM:SS, lo que esta pasando es que entran en otro formato y les pone puros ceros. Otra es que veas el formato en que esta definido.

Saludos
 
Logged Logged
 
DBASuppot Team
  The administrator has disabled public write access.
Go to top