none
Ajuda BCP RRS feed

  • Pergunta

  • SQLState = 08001, NativeError = 53
    Error = [Microsoft][SQL Native Client]Named Pipes Provider: Could not open a connection to SQL Server [53]. 
    SQLState = 08001, NativeError = 53
    Error = [Microsoft][SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connecti
    ons.
    SQLState = S1T00, NativeError = 0
    Error = [Microsoft][SQL Native Client]Login timeout expired
    NULL

    Amigos,

    Estou tentando importar uma consulta Oracle via OpenQuery. Mais nao estou consguindo.

    Declare @cmdSQL as Varchar(Max)
    	Set @cmdSQL = 'Select Top 1 * From OPENQUERY(ICS,''''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''''ACTIVE'''',''''OK'''')'''')'
    
    --Exec(@cmdSQL)
    
    Declare @bcp as Varchar(Max)
    	Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL.txt" -S ICS -T -c -t"|"'
    
    --Select @bcp
    
    
    Declare @shell as Varchar(17)
    	Set @shell = 'exec xp_cmdshell '
    
    Declare @cmd as Varchar(Max)
    	Set @cmd = @shell + '''' + @bcp + ''''
    
    --Select @cmd
    
    Exec(@cmd)
    Erro:


    Daniel
    quinta-feira, 21 de maio de 2009 00:53

Respostas

Todas as Respostas

  • DrAlves,

    Como esta definida a configuração do Linked Server entre o Oracle e o SQL Server?

    Em qual parte do código esta dando erro, desta forma, que você colocou o post fica dificil entender!!!!

    Conceitualmente o código não esta incorreto!!!


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 21 de maio de 2009 13:44
  • O erro é esse:

    SQLState = 08001, NativeError = 53
    Error = [Microsoft][SQL Native Client]Named Pipes Provider: Could not open a connection to SQL Server [53].
    SQLState = 08001, NativeError = 53
    Error = [Microsoft][SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connecti
    ons.
    SQLState = S1T00, NativeError = 0
    Error = [Microsoft][SQL Native Client]Login timeout expired
    NULL


    O linked Server funciona traquilamente. O Problema é quando tento executar utilizando o BCP. No final do BCP eu coloco novamente o LinkedServer "ICS". Será que eu devo colocar a senha novamente?
    Daniel
    quinta-feira, 21 de maio de 2009 14:52
  • Boa Tarde,

    Há algo errado. Se o Linked Server é para Oracle não faz sentido a mensagem de erro relatar uma falha de conexão com o SQL Server.
    Verifique se o nome do Linked Server está correto e se ele aponta para o lugar correto.

    Veja que seu comando de BCP tenta conectar no servidor ICS (o parâmetro -S). Se ICS é um servidor ORACLE o comando BCP não tem sentido. Se ICS é um servidor SQL, a descrição da dúvida não bate. No caso de ICS ser um servidor SQL Server recomendo verificar as conexões remotas (vide vários posts anteriores). Se ICS é um servidor ORACLE é preciso corrigir o comando. Sugiro:
    Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL.txt" -S ' + @@ServerName + ' -T -c -t"|"'

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 21 de maio de 2009 16:23
  • O linked Server é para Oracle e está funcionando corretamente.

    Gustavo, O comando ficou assim. Mais não está funcionando

    Declare

     

    @@ServerName as Varchar(50)

     

    Set @@ServerName = 'ICS.RJ.TELEMAR'

     

    Declare

     

    @bcp as Varchar(Max)

     

    Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL01.txt" -S ' + @@ServerName + ' -T -c -t"|"'

    Erro:

    Msg 102, Level 15, State 1, Line 5

    Incorrect syntax near '@@ServerName'.


    Daniel
    quinta-feira, 21 de maio de 2009 17:01
  • DrAlves,

    Você esta tentando atribuir valroes a uma variável de sistema @@ServerName isso não é permitido.

    Faça algumas alterações no código:

    Declare
     
    @ServerName as Varchar(50)
     
    Set @ServerName = 'ICS.RJ.TELEMAR'
     
    Declare
     
    @bcp as Varchar(Max)
     
    Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL01.txt" -S ' + @ServerName + ' -T -c -t"|"'

     


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 21 de maio de 2009 17:52
  • Olá Daniel,

    Creio que você está interpretando mal o comando BCP. Mesmo que o código funcionasse, veja que o BCP não irá se conectar a um servidor ORACLE, pois, é uma aplicação SQL. Não adianta você setar o valor da variável @@servername para ICS.RJ.TELEMAR. Se você necessita de gerar um TXT a partir do ORACLE é melhor procurar as ferramentas do ORACLE diretamente. Não faz sentido usar um Linked Server para que o SQL Server conecte-se ao ORACLE puxe os dados e gere um arquivo texto. Isso é muito mais lento que utilizar uma ferramenta ORACLE para gerar o TXT diretamente.

    Se realmente for utilizar essa abordagem, use o nome do servidor onde tem o Linked Server (no caso um servidor SQL) para rodar o BCP. Eu diria que se você deixar o seu código como está (supondo que a xp_cmdshell roda exatamente no servidor onde o Linked Server está configurado para o ORACLE) irá funcionar.

    @@ServerName é uma variável global que retorna o nome do servidor local. Ela só pode ser lida (get) e não atribuída (set). Se há a necessidade de atribuir o valor, use uma variável local e não global.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 21 de maio de 2009 18:06
  • Ainda continuo com erro.

    SQLState = 08001, NativeError = 53
    Error = [Microsoft][SQL Native Client]Named Pipes Provider: Could not open a connection to SQL Server [53].
    SQLState = 08001, NativeError = 53
    Error = [Microsoft][SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connecti
    ons.
    SQLState = S1T00, NativeError = 0
    Error = [Microsoft][SQL Native Client]Login timeout expired
    NULL
    Daniel
    quinta-feira, 21 de maio de 2009 18:18
  • Blz Gustavo,

    o problema é que no Oracle eu não tenho permissão para fazer nada lá. Só consultar.

    O erro agora é outro. Dá uma olhada.

    SQLState = 37000, NativeError = 102
    Error = [Microsoft][SQL Native Client][SQL Server]Incorrect syntax near 'ACTIVE'.
    SQLState = 37000, NativeError = 8180
    Error = [Microsoft][SQL Native Client][SQL Server]Statement(s) could not be prepared.
    NULL
    O código ficou dessa maneira. Porém quando eu tiro a condição Where funciona. 
    exec xp_cmdshell 'bcp "Select Top 1 * From OPENQUERY(ICS,''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''ACTIVE'',''OK'')'')" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL01.txt" -S ACCDBPRD01 -T -c -t"|"'

     

     

     Poderia ajudar?


    Daniel
    quinta-feira, 21 de maio de 2009 20:53
  • Gustavo,

    conseguiu ver alguma coisa?


    Daniel
    sexta-feira, 22 de maio de 2009 01:00
  • Alguem me ajuda.


    Daniel
    sexta-feira, 22 de maio de 2009 12:05
  • Ola Daniel

    tente executar somente esta linha

    exec

     

    xp_cmdshell 'bcp "SELECT top 1 ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ics.ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''ACTIVE'',''OK'')" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL01.txt" -S ACCDBPRD01 -T -c -t"|"'



    att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 22 de maio de 2009 15:52
  • Marcelo não funcionou.

    SQLState = S0002, NativeError = 208
    Error = [Microsoft][SQL Native Client][SQL Server]Invalid object name 'ICS.ICSADM.ICS_E_ACTION_LAUNCHER'.
    SQLState = 37000, NativeError = 8180
    Error = [Microsoft][SQL Native Client][SQL Server]Statement(s) could not be prepared.
    NULL

    Daniel
    sexta-feira, 22 de maio de 2009 18:51
  • Daniel,

    tenta agora com o char(39)

    exec

     

    xp_cmdshell 'bcp "Select Top 1 * From OPENQUERY(ICS,''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN('+char(39)+'ACTIVE'+char(39)+','+char(39)+'OK'+char(39)+')'')" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Acao_ATUAL01.txt" -S ACCDBPRD01 -T -c -t"|"'

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 22 de maio de 2009 19:12
  • Deu erro exatamente no char.

     

    Incorrect syntax near '+'.

    Daniel
    sexta-feira, 22 de maio de 2009 19:15
  • DrAlves,

    É alguma vírgula que esta faltando ou foi declarada a mais!!!


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 25 de maio de 2009 19:32
  • Olá Daniel,

    O uso de ferramentas do Oracle não quer dizer que você tem que ter outras permissões além de leitura. Estou certo de que esse SGBD possui ferramentas para exportar para arquivos texto e que você não precisará ser um SysDBA para utilizá-las. É muito mais performático do que pedir ao SQL Server que leia os dados e gere um BCP.

    Se isso realmente não for possível, certifique-se de que o comando de OPENROWSET (sem parâmetros) funciona. Depois trabalhamos a concatenação

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 25 de maio de 2009 21:07
  • Gustavo,

    realmente não é possível. Quanto ao OPENROWSET não funcionou. Será que ele não server somente para servidores SQLSERVER?

    Segue código(sem parâmetro)

    Select a.* From OPENROWSET('ICS', 'Select * from ICS_R_ACTION') as a;

     

     


    Daniel
    terça-feira, 26 de maio de 2009 17:29
  • Olá Daniel,

    Desculpe. Não quis dizer OPENROWSET (embora também funcione). Faça um teste para ver se o OPENQUERY está funcionando.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 26 de maio de 2009 17:48
  • Sem a condição funciona perfeitamente.

    Segue codigo sem a condição e sem estar dentro do BCP.

     

    Select Top 1 * From OPENQUERY(ICS,'SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER')

     

     


    Daniel
    terça-feira, 26 de maio de 2009 17:57
  • Ok,

    Agora volte ao seu código anterior ao invés de rodar o xp_cmdshell, dê um PRINT na variável.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 26 de maio de 2009 18:07
  • Alves,

    Então já conseguimos observar que o problema no Where.

    Aguardamos o código!!!

     


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 26 de maio de 2009 18:31
  • Esse é o Print

    exec xp_cmdshell 'bcp "Select Top 1 * From OPENQUERY(ICS,'SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN('ACTIVE','OK')')" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\Teste.txt" -S ACCDBPRD01 -T -c -t"|"

    Daniel
    terça-feira, 26 de maio de 2009 18:32
  • Olá Daniel,

    Esse não é o PRINT, é o comando. Quero o PRINT do valor da variável @bcp antes de você executá-la com o shell.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 26 de maio de 2009 18:40
  • Segue o print

    bcp "Select Top 1 * From OPENQUERY(ICS,'SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM 
    ICS_E_ACTION_LAUNCHER WHERE STATUS IN('ACTIVE')')" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ICS -T -c -t"|"

    Daniel
    terça-feira, 26 de maio de 2009 18:54
  • Olá Daniel,

    Esse é o problema. O OPENQUERY espera um texto com o comando. Como o "Active" está entre duas aspas simples, o comando falha. Você precisa montá-lo para que ele fique da seguinte forma:

    bcp "Select Top 1 * From OPENQUERY(ICS,'SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM
    ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''ACTIVE'')')" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ICS -T -c -t"|"

    É preciso dobrar as aspas do Active. Faça as tentativas e exiba a saída do comando até que esse comando fique correto

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 26 de maio de 2009 18:58
  • Dobrei de uma olhada:

    bcp "Select Top 1 * From OPENQUERY(ICS,''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''ACTIVE'')'')" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ICS -T -c -t"|"
    Mais o erro apareceu quando tentei executar somente o BCP, vide código completo.

     

    Declare @cmdSQL as Varchar(Max)
    Set @cmdSQL = 'Select Top 1 * From OPENQUERY(ICS,''''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''''ACTIVE'''')'''')'
    --Select @cmdSQL
    --Exec(@cmdSQL)
     
    Declare @bcp as Varchar(Max)
    Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ICS -T -c -t"|"'
    Select @bcp
    Exec(@bcp)
    Não esqueça que ainda falta o xp_cmdshell

    Daniel
    terça-feira, 26 de maio de 2009 19:07
  • DrAlves,

    Será que este exemplo não ajuda:

    Declare @LoteProducao Char(6),
               @CodProduto Char(3)



    Set @LoteProducao='001268' Set @CodProduto='991'
    Delete from Ct2006 Where LoteProducao=@LoteProducao AND SUBSTRING(CONVERT(CHAR(7),CODPRODUTO),1,3)=@CodProduto Go
    Insert Into Ct2006 Select * from openquery([131.107.3.2], 'Select * from Ctluvas Where LoteProducao= ''002089'' AND SUBSTRING(CONVERT(CHAR(7),CODPRODUTO),1,3)=''991''')

     


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 26 de maio de 2009 19:12
  • Eu queria jogar o resultado para arquivo txt.
    Daniel
    terça-feira, 26 de maio de 2009 19:17
  • Boa Tarde,

    Tinha uma aspas antes do SELECT e um após o parênteses. Tente agora.

    Declare @cmdSQL as Varchar(Max)
    Set @cmdSQL = 'Select Top 1 * From OPENQUERY(ICS,''SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS IN(''''ACTIVE'''')'')'
    --Select @cmdSQL
    --Exec(@cmdSQL)
     
    Declare @bcp as Varchar(Max)
    Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ICS -T -c -t"|"'
    Select @bcp
    --Exec(@bcp)

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 26 de maio de 2009 19:20
  • Caraca tá sinistro. Desde já agradeço pela ajuda

     

    Msg 103, Level 15, State 4, Line 1
    The identifier that starts with 'Select Top 1 * From OPENQUERY(ICS,'SELECT ACCOUNT_ID, ACTION_ID, EXECUTION_DATE, STATUS FROM ICS_E_ACTION_LAUNCHER WHERE STATUS ' is too long. Maximum length is 128.
    Msg 102, Level 15, State 1, Line 1
    Incorrect syntax near 'queryout'.

    Daniel
    terça-feira, 26 de maio de 2009 19:27
  • Olá Daniel,

    Receio que esbarramos em uma limitação do BCP. Uma consulta só pode ter 128 caractéres e essa extrapolou esse tamanho. Sugiro o seguinte:

    - Crie uma View
    - Adicione o seu comando de OPENQUERY dentro da View
    - Faça a consulta no BCP referenciando a View

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 26 de maio de 2009 19:34
  • Ficou desta maneira.

    bcp "Select * From dbo.rr" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ICS -T -c -t"|"
    Mais o erro é outro.

     

    Msg 102, Level 15, State 1, Line 1
    Incorrect syntax near 'queryout'.

    Daniel
    terça-feira, 26 de maio de 2009 19:42
  • Olá Daniel,

    O comando de BCP deve ser rodado em um prompt ou via xp_cmdshell. Não é possível rodá-lo diretamente como uma consulta.
    Vale a pena lembrar que você ainda está usando o parâmetro -S para o servidor ORACLE. Esse parâmetro está incorreto (conforme explicado nos posts anteriores). Você deve informar o servidor SQL que possui o Linked Server e não o servidor ORACLE

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 26 de maio de 2009 19:52
  • Tamo chegando lá.

    Ficou assim já com as alterações do servidor SQL e a inclusão do xp_cmdshell


     

    Declare @cmdSQL as Varchar(Max)
    Set @cmdSQL = 'Select * From rr'
    --Select @cmdSQL
    --Exec(@cmdSQL)
    Declare @bcp as Varchar(Max)
    Set @bcp = 'bcp "'+@cmdSQL+'" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ACCDBPRD01 -T -c -t"|"'
    Select @bcp
    Exec(@bcp)
    Declare @shell as Varchar(17)
    Set @shell = 'exec xp_cmdshell '
    Declare @cmd as Varchar(Max)
    Set @cmd = @shell + '''' + @bcp + ''''
    --Select @cmd
    Exec(@cmd)

     

     

    Erro:

    Msg 102, Level 15, State 1, Line 1
    Incorrect syntax near 'queryout'.

    Erro:

    SQLState = S0002, NativeError = 208
    Error = [Microsoft][SQL Native Client][SQL Server]Invalid object name 'rr'.
    SQLState = 37000, NativeError = 8180
    Error = [Microsoft][SQL Native Client][SQL Server]Statement(s) could not be prepared.
    NULL



     


    Daniel
    terça-feira, 26 de maio de 2009 20:08
  • Olá Daniel,

    O uso do BCP é feito com o Prompt e não via query. Se a view é fixa também não há necessidade de concatená-la. Tente o seguinte:

    Declare @bcp as Varchar(500)
    Set @bcp = 'bcp "select * from rr" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ACCDBPRD01 -T -c -t"|"'
    
    exec xp_cmdshell @bcp
    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 26 de maio de 2009 20:29
  • Executei o script e o erro foi esse:

    SQLState = S0002, NativeError = 208
    Error = [Microsoft][SQL Native Client][SQL Server]Invalid object name 'rr'.
    SQLState = 37000, NativeError = 8180
    Error = [Microsoft][SQL Native Client][SQL Server]Statement(s) could not be prepared.
    NULL

    Daniel
    terça-feira, 26 de maio de 2009 20:31
  • Oi Daniel,

    Tente assim:

    Declare @bcp as Varchar(500)
    Set @bcp = 'bcp "select * from banco.dbo.rr" queryout "\\10.20.88.200\FIXA_PA_PI_RN_SE\TESTE.txt" -S ACCDBPRD01 -T -c -t"|"'
    
    exec xp_cmdshell @bcp
    

    Substitua o "banco.dbo" pelo nome e esquema necessários

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta dralves terça-feira, 26 de maio de 2009 20:41
    terça-feira, 26 de maio de 2009 20:35
  • "E assim se fez a LUZ"......

    MUITO OBRIGADO GUSTAVO.
    Daniel
    terça-feira, 26 de maio de 2009 20:41