none
erro ao importar arquivo usando fmt RRS feed

  • Pergunta

  • tenho um arquivo txt com delimitador | (pipe). abaixo: 

    DATA_BASE|textbox10|textbox47|textbox43|textbox54|textbox55|textbox63|textbox64|textbox65|textbox68|textbox11|textbox96|textbox92|COD_AGRUP_CONTABIL|NOM_EMPRESA|NOM_TIPO_3068|NOM_TIPO_ESTOQUE|NOM_SUB_PRODUTO|INDEXADOR|NOM_CARACTERISTICA|COD_AGRUP_GERENCIAL|NOM_TIPO_CONTRAPARTE|NOM_CENTRALIZADOR|NOM_GESTOR|NOM_SUBGESTOR|NOM_ESTRATEGIA|QTD_FECHAMENTO|QTD_ABERTURA|VLR_PU_FECHAMENTO|PCT_LIQUIDACAO|DAT_VENCIMENTO|VLR_ACCRUAL_ABERT|VLR_ACCRUAL_FECH|VLR_MTM_AUXILIAR|VLR_REFERENCIA|VLR_MTM_CONTABIL_FECH|VLR_RSLTDO_ATUALIZACAO_DIA|VLR_RSLTDO_ALIENACAO_DIA|VLR_RSLTDO_INTERMEDIACAO|VLR_RSLTDO_DELTA_MTM_DIA|VLR_RSLTDO_TRADING_DIA|VLR_RSLTDO_AJUSTE_MTM_DIA|VLR_RSLTDO_REALIZAR_DIA|VLR_RSLTDO_REALIZADO_DIA|VLR_CUSTO_OPORTUNIDADE|textbox95|textbox91|NOM_TIPO
    Data Base: 14/6/2012|Valores em Unidades|8.426.546,52|1.933.641,15|0,00|32.207.627,58|347.428,22|22.194.868,14|-17.790.826,61|-279,46|-18.270.900,34|-18.080.333,75|-190.566,59|2481968|Itaú Unibanco S.A.|TRD     |PROPRIO|LFT|SELIC|LFT 210100 - 2014-03-07|4379404|Mercado|MESA WMS                      |MESA WMS - WMS                |SEEDMONEY                                         |AINT                          |-12.636|-12.636,00|5.236,30|0,00|7/3/2014|-66.165.919,81|-66.165.934,21|-66.253.775,06|-66.159.035,32|-66.253.775,06|-21.139,54|0,00|0,00|-20.715,57|0,00|423,97|21.318,06|0,00|21.351,22|21.322,76|28,46|Mercado
    Data Base: 14/6/2012|Valores em Unidades|8.426.546,52|1.933.641,15|0,00|32.207.627,58|347.428,22|22.194.868,14|-17.790.826,61|-279,46|-18.270.900,34|-18.080.333,75|-190.566,59|2481968|Itaú Unibanco S.A.|TRD     |PROPRIO|LFT|SELIC|LFT 210100 - 2014-03-07|11697648|Mercado|TRADING                       |RENDA FIXA                    |RF MKT MKG PRÉ                                    |TIT PUBLICOS - DEALER         |-27.000|-27.000,00|5.236,30|0,00|7/3/2014|-141.380.170,53|-141.380.201,31|-141.567.895,42|-141.365.460,09|-141.567.895,42|-45.169,96|0,00|0,00|-44.264,04|0,00|905,92|45.549,98|0,00|45.622,27|45.561,46|60,81|Mercado
    

    meu arquivo fmt está assim: 

    9.0
    48
    1        SQLCHAR       0       100     "|"      1     DATA_BASE         	""
    2        SQLCHAR       0       100     "|"      2     textbox10         	""
    3        SQLCHAR       0       100     "|"      3     textbox47         	""
    4        SQLCHAR       0       100     "|"      4     textbox43         	""
    5        SQLCHAR       0       100     "|"      5     textbox54         	""
    6        SQLCHAR       0       100     "|"      6     textbox55         	""
    7        SQLCHAR       0       100     "|"      7     textbox63         	""
    8        SQLCHAR       0       100     "|"      8     textbox64         	""
    9        SQLCHAR       0       100     "|"      9     textbox65         	""
    10        SQLCHAR       0       100     "|"      10     textbox68         	""
    11        SQLCHAR       0       100     "|"      11     textbox11         	""
    12        SQLCHAR       0       100     "|"      12     textbox96         	""
    13        SQLCHAR       0       100     "|"      13     textbox92         	""
    14        SQLCHAR       0       100     "|"      14     COD_AGRUP_CONTABIL         	""
    15        SQLCHAR       0       100     "|"      15     NOM_EMPRESA         	""
    16        SQLCHAR       0       100     "|"      16     NOM_TIPO_3068         	""
    17        SQLCHAR       0       100     "|"      17     NOM_TIPO_ESTOQUE         	""
    18        SQLCHAR       0       100     "|"      18     NOM_SUB_PRODUTO         	""
    19        SQLCHAR       0       100     "|"      19     INDEXADOR         	""
    20        SQLCHAR       0       100     "|"      20     NOM_CARACTERISTICA         	""
    21        SQLCHAR       0       100     "|"      21     COD_AGRUP_GERENCIAL         	""
    22        SQLCHAR       0       100     "|"      22     NOM_TIPO_CONTRAPARTE         	""
    23        SQLCHAR       0       100     "|"      23     NOM_CENTRALIZADOR         	""
    24        SQLCHAR       0       100     "|"      24     NOM_GESTOR         	""
    25        SQLCHAR       0       100     "|"      25     NOM_SUBGESTOR         	""
    26        SQLCHAR       0       100     "|"      26     NOM_ESTRATEGIA         	""
    27        SQLCHAR       0       100     "|"      27     QTD_FECHAMENTO         	""
    28        SQLCHAR       0       100     "|"      28     QTD_ABERTURA         	""
    29        SQLCHAR       0       100     "|"      29     VLR_PU_FECHAMENTO         	""
    30        SQLCHAR       0       100     "|"      30     PCT_LIQUIDACAO         	""
    31        SQLCHAR       0       100     "|"      31     DAT_VENCIMENTO         	""
    32        SQLCHAR       0       100     "|"      32     VLR_ACCRUAL_ABERT         	""
    33        SQLCHAR       0       100     "|"      33     VLR_ACCRUAL_FECH         	""
    34        SQLCHAR       0       100     "|"      34     VLR_MTM_AUXILIAR         	""
    35        SQLCHAR       0       100     "|"      35     VLR_REFERENCIA         	""
    36        SQLCHAR       0       100     "|"      36     VLR_MTM_CONTABIL_FECH         	""
    37        SQLCHAR       0       100     "|"      37     VLR_RSLTDO_ATUALIZACAO_DIA         	""
    38        SQLCHAR       0       100     "|"      38     VLR_RSLTDO_ALIENACAO_DIA         	""
    39        SQLCHAR       0       100     "|"      39     VLR_RSLTDO_INTERMEDIACAO         	""
    40        SQLCHAR       0       100     "|"      40     VLR_RSLTDO_DELTA_MTM_DIA         	""
    41        SQLCHAR       0       100     "|"      41     VLR_RSLTDO_TRADING_DIA         	""
    42        SQLCHAR       0       100     "|"      42     VLR_RSLTDO_AJUSTE_MTM_DIA         	""
    43        SQLCHAR       0       100     "|"      43     VLR_RSLTDO_REALIZAR_DIA         	""
    44        SQLCHAR       0       100     "|"      44     VLR_RSLTDO_REALIZADO_DIA         	""
    45        SQLCHAR       0       100     "|"      45     VLR_CUSTO_OPORTUNIDADE         	""
    46        SQLCHAR       0       100     "|"      46     textbox95         	""
    47        SQLCHAR       0       100     "|"      47     textbox91         	""
    48        SQLCHAR       0       100     "\r\n"     48     NOM_TIPO         	""

    estou fazendo o bulk insert assim:

    SELECT
     top 1 a.* FROM OPENROWSET( BULK 'C:\arquivo.TXT', FORMATFILE = 'C:\Department.fmt') AS a;
    

    porém, me dá o seguinte erro:

    Msg 4866, Level 16, State 1, Line 1
    The bulk load failed. The column is too long in the data file for row 1, column 48. Verify that the field terminator and row terminator are specified correctly.
    Msg 7399, Level 16, State 1, Line 1
    The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
    Msg 7330, Level 16, State 2, Line 1
    Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

    só que se eu fizer dessa forma: 

    BULK INSERT #TEMP FROM 'C:\arquivo.TXT' WITH (FIELDTERMINATOR='|', firstrow = 1, ROWTERMINATOR = '\n')
    funciona perfeitamente. minha pergunta é: o que está errado quando tento fazer a importação usando arquivo .fmt?
    sexta-feira, 26 de outubro de 2012 21:29

Todas as Respostas

  • então, alguém?
    segunda-feira, 29 de outubro de 2012 13:29
  • Rafa,

    Então, a questão que quando utilizamos o comando Bulk Insert você informando o delimitador dos campos e parâmetro de encerramento da cada linha, ou seja, em cada linha de seu registro você poderia colocar o sinal de ponto e vírgula ";".


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    terça-feira, 30 de outubro de 2012 20:53
  • Pode ser uma resposta besta, mas já caí nessa. No seu arquivo fmt você precisa dar um "enter" a mais ao final do arquivo, o EOF não pode terminar na última linha com informação

    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco

    quarta-feira, 31 de outubro de 2012 18:46
  • fausto, no arquivo já tem um enter no final do arquivo. porém, o erro continua.

    e junior o delimitador é | (pipe). não entendi sua resposta.

    quarta-feira, 31 de outubro de 2012 19:09