Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SQL 2008 R2 : Problema con Import da file FLAT

570 views
Skip to first unread message

AM Informatica

unread,
Apr 22, 2011, 11:13:46 AM4/22/11
to
C'è il seguente problema eseguendo una import da file FLAT :

file ascii del tipo :
prima riga = intestazione campi
seconda riga = dati

COLONNA1 COLONNA2
CODICE DESCRIZIONE

e importo in una tabella così definita:

COLONNA1 varchar(50)
COLONNA2 varchar(MAX)

finchè il dato che va nella seconda colonna ( DESCRIZIONE ) non supera
i 20 caratteri circa allora l'import viene eseguito con successo.Es:

contenuto file:
COLONNA1 COLONNA2
A La difettosita La difettositaLaLa

se il dato che va nella seconda colonna ( DESCRIZIONE ) supera i 20
caratteri allora sql resituisce un errore e non esegue l'import :

contenuto file:
COLONNA1 COLONNA2
A La difettosita La difettositaLaLaLa difettosita
La difettositaLaLa

Errore:
impossibile eseguire la conversione dei dati.La conversione dei dati
per la colonna "COLONNA1" ha restituito il valore di stato 4 e il
testo di stato "testo troncato oppure impossibile trovare
corrispondenze per uno o più caratteri nella tabella codici di
destinazione"

ciao Maurizio

Lorenzo Benaglia

unread,
Apr 25, 2011, 1:29:22 PM4/25/11
to

Ciao Maurizio,

Come esegui l'importazione?
Supponiamo di avere il seguente file D:\Input.txt con il tab come separatore
di colonna ed un CR+LF come separatore di riga:

<BOF>
COLONNA1 COLONNA2
CODICE 1 DESCRIZIONE
CODICE 2 DESCRIZIONE DI MOLTI CARATTERI

<EOF>

Il seguente esempio utilizza una banalissima BULK INSERT per popolare la
tabella e come puoi vedere importa correttamente anche la seconda riga che
supera i 20crt:

USE tempdb;

CREATE TABLE dbo.foo(
c1 varchar(50) NOT NULL,
c2 varchar(max) NOT NULL
);

BULK INSERT dbo.foo
FROM 'D:\Input.txt'
WITH (
DATAFILETYPE = 'char'
, FIRSTROW = 2
, TABLOCK
);

SELECT *
FROM dbo.foo;

/* Output:

c1 c2
--------- --------------------------------
CODICE 1 DESCRIZIONE
CODICE 2 DESCRIZIONE DI MOLTI CARATTERI

(2 row(s) affected)

*/

DROP TABLE dbo.foo;
!!del D:\Input.txt

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://social.technet.microsoft.com/Forums/it-IT/sqlserverit

AM Informatica

unread,
Apr 27, 2011, 4:31:33 AM4/27/11
to
Abbiamo provato questo metodo e funziona.

Ti ringrazio molto per l'aiuto.

ciao Maurizio

0 new messages