SSIS: Microsoft SQL Server Integration Services

SSIS: Microsoft SQL Server Integration Services Dataprix Fri, 05/23/2014 - 19:39

SSIS: Problemas para acceder a Oracle 10g desde entorno de 64 bits mediante Oledb

SSIS: Problemas para acceder a Oracle 10g desde entorno de 64 bits mediante Oledb il_masacratore Thu, 11/19/2009 - 09:49

Si estamos intendo crear una tarea de flujo de datos que acceda a Oracle usando versiones de cliente igual o inferior a la 10g en entornos de 64bits nos podemos encontrar que al añadir las conexiones aparace un mensaje como el siguiente:

"Test connection failed because of an error in initializing provider. ORA-06413: Connection not open"

La causa del problema reside en que las herramientos de cliente (management studio) de sqlserver se instalan por defecto en la carpeta de archivos de programa con "(x86)" y la mayoria de componentes de management studio estan compilado para 32 bits. A esto falta sumarle un bug de oracle con el tratamiento de esta ruta con parentesis y ya tenemos algo que no funciona...
Soluciones o workarounds para este problema hay varios, que van desde usar directamente el cliente de oracle 11g hasta copiar/pegar los ficheros de la instalación y modificar las claves de registro relativas a SSIS y las rutas de DTExec.exe (ejecutable para paquetes ssis). También debemos cambiar la plataforma en las propiedades del proyecto por una de 32 bits y tener instalada la versión de cliente correspondiente. Aquí encontrareis algunas propuestas.

Por favor, antes de decidir que hacer hay que pensarselo dos veces y analizar si el problema lo podemos esquivar por la parte de la plataforma; si disponemos otra instalación de sqlserveradicional de 32 bits donde poder deployar nuestros paquetes ssis nos ahorraremos dolores de cabeza y perder el tiempo haciendo estas modificaciones. Recuerdo haber leído también que existen parches para Oracle que lo solución, o se puede optar directamente por instalar el cliente de la 11g etc...

Buena suerte

SSIS: Solución a dos errores sin motivo aparente cuando insertamos datos en MySql

SSIS: Workaround to two errors for no apparent reason when we insert data in MySql il_masacratore Fri, 09/10/2010 - 11:51

 

For whatever reason we may have to develop a Microsoft Integration Services package we move data from any source to a table that is in a MySQL database.

 

The first aim will do so through an ADO.NET Destination and MySQL provider for the connection. If we do well to insert the data directly, to create the target, select the connection and then select the table appears an error like the following check everything with the preview or try and do the assignments.

 

 

 

This error is due to the compatibility mode of ansi sql mysql database where we try to load the data. To solve this we must connect to MySQL server and change the compatibility of ansi sql database *:

 

TOCA:~# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 77

Server version: 5.0.51a-24+lenny3-log (Debian)

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql> select @@global.sql_mode;

+-------------------+

| @@global.sql_mode |

+-------------------+

| |

+-------------------+

1 row in set (0.00 sec)

 

mysql> set global sql_mode='ANSI';

Query OK, 0 rows affected (0.00 sec)

 

mysql> select @@global.sql_mode;

+-------------------------------------------------------------+

| @@global.sql_mode |

+-------------------------------------------------------------+

| REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI |

+-------------------------------------------------------------+

1 row in set (0.00 sec)

 

mysql> exit

 

If we can retest and get a preview of the table or edit the mappings between columns, but we find another error when running the package:

 

[ADO NET Destination [843]] Error: Exception when inserting data.  The provider returned message is: Unknown column 'p1' in 'field list' "

The driver has a problem and not let us work well with parameters (which is how they built the insertions of records in the destination) so we have to do another workaround to solve this problem working with ADO.NET Destination on arrival but with a ODBC source in the connection. This joined the issue of modifying the destination sql_mode MySQL allow us to load properly.

 

 

 


 

* Please note that the support we can change globally and in the instance or session level only (by which we should add a command execution in the first instance to modify the value of @ @ SESSION.sql_mode). Más info aquí. More info here.