SSIS: Soluzione a due errori per nessun motivo apparente, quando inserisce i dati in MySql

 

Per qualunque motivo si può avere per sviluppare un pacchetto di Microsoft Integration Services che spostare i dati da qualsiasi fonte a una tabella che si trova in un database MySQL.

La prima intenzione lo farà tramite un provider ADO.NET destinazione e MySQL per la connessione. Se facciamo bene di inserire i dati direttamente, creando la destinazione, selezionare la connessione, quindi selezionare la tabella appare un errore come il seguente tutto verificare con l'anteprima o cercare di fare le assegnazioni.

 

 

 

Questo errore è dovuto alla modalità di compatibilità di ANSI SQL database mysql dove si cerca di caricare i dati. Per risolvere questo problema bisogna connettersi al server MySQL e cambiare la compatibilità del database SQL ANSI *:

 

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

 

 

Se riusciamo a ripetere il test ed ottenere una anteprima del tavolo o modificare il mapping tra le colonne, ma troviamo un altro errore quando si esegue il pacchetto:

[ADO NET destinazione [843]] Errore: eccezione quando si inseriscono i dati. Il provider ha restituito messaggio è: Unknown column 'P1' a 'Elenco campi' "

Il conducente ha un problema e non lasciare che lavoriamo bene con parametri (che è come hanno costruito gli inserimenti di record del destination), so che abbiamo a che fare un'altra soluzione per risolvere questo problem working con ADO.NET destinazione su arrival but con un sorgente ODBC nella connessione. Questa accoppiata con il tema della modifica della destinazione sql_mode MySQL ci permettono di caricare correttamente.

 

 


 

* Si prega di notare che il sostegno che possiamo cambiare il mondo e per la sessione o solo livello (con cui si dovrebbe aggiungere un esecuzione dei comandi in prima istanza per modificare il valore di @ @ SESSION.sql_mode). Maggiori informazioni qui.