Usuário com melhor resposta
Erro BCP ao gerar arquivo em servidor remoto

Pergunta
-
Bom dia,
Pessoal estou com a seguinte situação.
Servidor de Banco de dados no Server01 e servidor de aplicação Server02, estou usando BCP para gerar um arquivo .txt, porém, não gera.
Um exemplo do código que estou utilizando para gerar é:
CREATE TABLE BCP_TESTE ( CODIGO VARCHAR(10) ); INSERT INTO BCP_TESTE ( BCP_TESTE.CODIGO ) VALUES ( 'TESTE BCP' -- CODIGO - VARCHAR ) DECLARE @V_NOME_BANCO VARCHAR(100); DECLARE @V_USUARIO_BANCO VARCHAR(30) = 'seuuser'; DECLARE @V_SENHA_BANCO VARCHAR(30) = 'suasenha'; SELECT @V_NOME_BANCO = @@SERVERNAME; DECLARE @V_DBNAME VARCHAR(50); SELECT @V_DBNAME = RTRIM(DB_NAME()) + '..'; DECLARE @v_bcp varchar(4000) = ' BCP "SELECT DISTINCT CODIGO FROM ' + @V_DBNAME + 'BCP_TESTE A " QUERYOUT \\192.168.0.155\ftp\BCP_TESTE.TXT /S ' + @V_NOME_BANCO + ' /m0 /b100 /c /t /U ' + @V_USUARIO_BANCO + ' /r \n /P ' + @V_SENHA_BANCO PRINT @v_bcp; EXEC master..xp_cmdshell @v_bcp
O erro que recebo é:
SQLState = S1000, NativeError = 0 Error = [Microsoft][SQL Native Client]Unable to open BCP host data-file NULL
Caso eu coloque para gerar no Servidor 'Server01' que é o próprio servidor do SQL Server o arquivo é gerado com sucesso.
No aguardo,
Atenciosamente, Ruberlei. www.t-sql.com.br
Respostas
-
Ruberlei,
A mensagem de erro esta informando que é impossível abrir o arquivo no host para que o BCP possa trabalhar com este arquivo.
Verifique se o usuário que você esta utilizando neste momento no SQL Server para executar o BCP através do XP_CMDShell tem permissão de escrita no local.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
- Marcado como Resposta Ruberlei quinta-feira, 13 de novembro de 2014 16:23
Todas as Respostas
-
Ruberlei,
A mensagem de erro esta informando que é impossível abrir o arquivo no host para que o BCP possa trabalhar com este arquivo.
Verifique se o usuário que você esta utilizando neste momento no SQL Server para executar o BCP através do XP_CMDShell tem permissão de escrita no local.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
- Marcado como Resposta Ruberlei quinta-feira, 13 de novembro de 2014 16:23
-
Boa tarde,
Diante do que o Junior disse fui ver questão de usuário e deu certo.
Máquinas que não estão em um domínio o serviço do SQL Server deve ter um usuário que também exista na máquina destino.
Máquinas que pertençam a um domínio gerou arquivo sem adicionar um usuário e senha especifico no SQL Server.
Situação Resolvida, Obrigado Junior.
Atenciosamente, Ruberlei. www.t-sql.com.br