none
SSIS - Componente arquivo simples csv, linha nula RRS feed

  • Pergunta

  • Boa tarde,

    Estou precisando de ajuda em um caso.

    Tenho uma origem oracle e um destino arquivo simples no formato csv.

    Mas ao gerar o csv esta gerando a ultima linha vazia, estou usando o componente Script Task porém esta gastando o dobro do tempo para processar. Existe alguma outra forma que elimine a ultima linha vazia do csv?

    Estou utilizando o Visual Studio 2017. 


    • Editado welder martins segunda-feira, 18 de janeiro de 2021 14:42 detalhes.
    segunda-feira, 18 de janeiro de 2021 14:40

Todas as Respostas

  • welder,

    Vou tentar lhe ajudar, em particular eu não tenho muitos conhecimentos no uso do Oracle!

    Qual é a instrução define no componente Script Task?

    Este arquivo .csv esta sendo armazenado no mesmo servidor Oracle, na rede ou na máquina que esta processamento este pacote?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 19 de janeiro de 2021 11:57
    Moderador
  • Olá Junior, blz?

    Desculpe pela demora mas não recebi o alerta de resposta da pergunta.

    A extração esta ocorrendo na mesma maquina, mas pelo que eu vi o script esta percorrendo linha a linha e verificando se existe linha vazia. Se existir uma forma de verificar a ultima linha fica mais rápido. Veja abaixo como esta definido o código.

    Att,

    Welder

    
    #region Namespaces
    using System;
    using System.Data;
    using Microsoft.SqlServer.Dts.Runtime;
    using System.Windows.Forms;
    using System.IO;
    #endregion
    
    namespace ST_f83e2c1c4c4c45ac8a0353c3f382ede1
    {
        
    [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
        classe pública parcial ScriptMain: Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
        {
            
    
            #endregion
    
                    public void Main ()
            {
                string filename = @ Dts.Variables ["User :: Arquivo"]. Value.ToString ();
                string fileinfo = "";
                string curline = "";
    
                TextReader tr = novo StreamReader (nome do arquivo);
                while ((curline = tr.ReadLine ())! = null)
                {
                    curline = curline.Trim ();
                    if (curline.Length> 0)            
    
                    fileinfo = fileinfo + curline;
                }
                tr.Close ();
    
    
               
    
                TextWriter tw = novo StreamWriter (nome do arquivo, falso);
                tw.Write (fileinfo);
                tw.Close ();
    
                Dts.TaskResult = (int) ScriptResults.Success;
            }
    
            #region ScriptResults declaração /// <summary> /// Este enum oferece um atalho conveniente dentro do escopo desta classe para definir o /// resultado do script. /// /// Este código foi gerado automaticamente. /// </summary> enum ScriptResults { Success = Microsoft . SqlServer . Dts . Runtime . DTSExecResult . Sucesso , Falha = Microsoft . SqlServer . Dts . Runtime . DTSExecResult .Falha };
            
            
            
            
            
            
             
            
                  
                  
            
            #endregion
    
        } }


    • Editado welder martins segunda-feira, 25 de janeiro de 2021 19:35 detalhes.
    segunda-feira, 25 de janeiro de 2021 19:27
  • Welder,

    Talvez uma alternativa seja contar a quantidade de linhas do arquivo assim que o mesmo é aberto, e a cada linha processada ir comparando com o número da linha total.

    Sinceramente nesta parte do desenvolvimento em C#, foge do meu conhecimento.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 26 de janeiro de 2021 14:08
    Moderador