- Fórum
- Protheus/Microsiga/Totvs
- Instalação e Configuração Protheus
- Banco de Dados
- gerar arquivo texto apartr do SQL
Perguntas gerar arquivo texto apartr do SQL
- Andre.Esteves
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 31
- Obrigados Recebidos: 0
12 anos 6 meses atrás #1729
por Andre.Esteves
gerar arquivo texto apartr do SQL foi criado por Andre.Esteves
boa tarde!
alguem conhece algum comando simples para criar um arquivo texto apartir do reseultado de uma consulta SQL
Tipo esse em Mysql
SELECT TOp 10 F1_FILIAL+F1_DOC
INTO OUTFILE 'c:\Andre_sql_teste.txt'
FIELDS TERMINATED BY ''
ENCLOSED BY ''
LINES TERMINATED BY ''
FROM SF1010
alguem conhece algum comando simples para criar um arquivo texto apartir do reseultado de uma consulta SQL
Tipo esse em Mysql
SELECT TOp 10 F1_FILIAL+F1_DOC
INTO OUTFILE 'c:\Andre_sql_teste.txt'
FIELDS TERMINATED BY ''
ENCLOSED BY ''
LINES TERMINATED BY ''
FROM SF1010
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
12 anos 6 meses atrás #1731
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Re: gerar arquivo texto apartr do SQL
Utilitário osql
SQL Server 2012
Outras versões
Este tópico ainda não foi avaliado como - Avalie este tópico
O utilitário osql permite inserir instruções Transact-SQL, procedimentos de sistema e arquivos de script. Esse utilitário usa o ODBC para comunicar-se com o servidor.
Observação importante Importante
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novo trabalho de desenvolvimento e planeje modificar os aplicativos que utilizam o recurso atualmente. Em vez disso, use sqlcmd. Para obter mais informações, consulte Utilitário sqlcmd.
Sintaxe
osql
[-?] |
[-L] |
[
{
{-Ulogin_id [-Ppassword]} | –E }
[-Sserver_name[\instance_name]] [-Hwksta_name] [-ddb_name]
[-ltime_out] [-ttime_out] [-hheaders]
[-scol_separator] [-wcolumn_width] [-apacket_size]
[-e] [-I] [-D data_source_name]
[-ccmd_end] [-q "query"] [-Q"query"]
[-n] [-merror_level] [-r {0 | 1}]
[-iinput_file] b][color=#ff0000]-ooutput_file[/color][/b [-p]
[-b] [-u] [-R] [-O]
]
Argumentos
-?
Exibe o resumo da sintaxe de opções osql.
-L
Lista os servidores configurados localmente e os nomes dos servidores que estão transmitindo na rede.
Observação Observação
Devido à natureza da transmissão em redes, o osql pode não receber a tempo uma resposta de todos os servidores. Assim, a lista de servidores retornada pode variar para cada invocação dessa opção.
-U login_id
É a identificação de logon do usuário. IDs de logon diferenciam maiúsculas de minúsculas.
-P password
É uma senha especificada pelo usuário. Se a opção -P não for usada, o osql solicitará a senha. Se a opção -P for usada ao término do prompt de comando sem uma senha, o osql usará a senha padrão (NULL).
Observação sobre segurança Observação sobre segurança
Não use uma senha em branco. Use uma senha forte. Para obter mais informações, consulte Senhas fortes.
As senhas diferenciam maiúsculas e minúsculas.
A variável de ambiente OSQLPASSWORD permite definir uma senha padrão para a sessão atual. Assim, senhas não têm de ser codificadas em arquivos em lote.
Se você não especificar uma senha com a opção -P, o osql verificará primeiro a variável OSQLPASSWORD. Se nenhum valor for definido, o osql usará a senha padrão, NULL. O exemplo seguinte define a variável OSQLPASSWORD em um prompt de comando e então acessa o utilitário osql:
C:\>SET OSQLPASSWORD=abracadabra
C:\>osql
Observação sobre segurançaObservação sobre segurança
Para mascarar a senha, não especifique a opção -P junto com a opção -U. Em vez disso, depois de especificar o osql junto com a opção -U e outras (não especificar a opção -P), pressione ENTER e o osql pedirá uma senha. Esse método garante que sua senha será mascarada quando for inserida.
-E
Usa uma conexão confiável em vez de pedir uma senha.
-S server_name[ \instance_name]
Especifica uma instância do SQL Server a qual se conectar. Especifique o server_name para se conectar à instância padrão do SQL Server nesse servidor. Especifique o server_name\instance_name para se conectar a uma instância nomeada do SQL Server nesse servidor. Se nenhum servidor for especificado, o osql se conectará à instância padrão do SQL Server no computador local. Essa opção é obrigatória quando o osql é executado de um computador remoto na rede.
-H wksta_name
É um nome de estação de trabalho. O nome de estação de trabalho é armazenado em sysprocesses.hostname e exibido pelo sp_who. Se essa opção não for especificada, o nome do computador atual será presumido.
-d db_name
Emite uma instrução USE db_name quando o osqlé iniciado.
-l time_out
Especifica o número de segundos antes de um logon do osql expirar. O tempo limite padrão de logon do osql é de oito segundos.
-t time_out
Especifica o número de segundos antes de um comando expirar. Se não for especificado um valor de time_out, os comandos não vão expirar.
-h headers
Especifica o número de linhas a imprimir entre cabeçalhos de coluna. O padrão é imprimir títulos uma vez para cada conjunto de resultados de consulta. Use -1 para especificar que nenhum cabeçalho será impresso. Se -1 for usado, não deve haver nenhum espaço entre o parâmetro e a configuração (-h-1, não -h -1).
-s col_separator
Especifica o caractere do separador de colunas que, por padrão, é um espaço em branco. Para usar um caractere com um significado especial para o sistema operacional como, por exemplo, | ; & < >), coloque-o entre aspas duplas (").
-w column_width
Permite ao usuário definir a largura da tela de saída. O padrão é de 80 caracteres. Quando uma linha de saída alcança sua largura de tela máxima, ela é quebrada em várias linhas.
-a packet_size
Permite solicitar um pacote de tamanho diferente. Os valores válidos de packet_size são de 512 a 65535. O valor padrão osql é o padrão do servidor. Um tamanho de pacote maior pode aumentar o desempenho na execução de scripts maiores, em que a quantidade de instruções SQL entre comandos GO é substancial. Testes da Microsoft indicam que 8192 geralmente é a configuração mais rápida para operações de cópia em massa. Um tamanho de pacote maior pode ser solicitado, mas o osql assumirá como padrão o padrão do servidor se a solicitação não puder ser atendida.
-e
Duplica a entrada.
-I
Ativa a opção de conexão QUOTED_IDENTIFIER.
-D data_source_name
Conecta-se a uma fonte de dados ODBC que é definida usando o driver ODBC do SQL Server. A conexão osql usa as opções especificadas na fonte de dados.
Observação Observação
Essa opção não trabalha com fontes de dados definidas para outros drivers.
-c cmd_end
Especifica o terminador de comando. Por padrão, comandos são encerrados e enviados ao SQL Server se GO for inserido sozinho em uma linha. Quando você redefinir o terminador de comando, não use palavras reservadas do Transact-SQL nem caracteres que tenham significado especial para o sistema operacional, sejam ou não precedidos por uma barra invertida.
-q " query "
Executa uma consulta quando o osql inicia, mas não encerra o osql quando a consulta é concluída. (Observe que a instrução de consulta não deve incluir a instrução GO). Se você emitir uma consulta de um arquivo em lote, use %variáveis ou %variáveis% de ambiente. Por exemplo:
SET table=sys.objects
osql -E -q "select name, object_id from %table%"
Coloque a consulta entre aspas duplas e qualquer coisa incorporada na consulta entre aspas simples.
-Q " query "
Executa uma consulta e imediatamente encerra o osql. Coloque a consulta entre aspas duplas e qualquer coisa incorporada na consulta entre aspas simples.
-n
Remove a numeração e o símbolo de prompt (>) das linhas de entrada.
-m error_level
Personaliza a exibição de mensagens de erro. São exibidos o número da mensagem, o estado e o nível de erros com o nível de severidade especificado ou superior. Nada é exibido para erros de níveis abaixo do nível especificado. Use -1 para especificar que todos os cabeçalhos retornem com mensagens, até mesmo mensagens informativas. Se -1 for usado, não deverá haver espaço entre o parâmetro e a configuração (-m-1, não -m -1).
-r { 0| 1}
Redireciona a saída da mensagem para a tela (stderr). Se você não especificar um parâmetro ou especificar 0, serão redirecionadas somente mensagens de erro com nível de severidade 11 ou superior. Se você especificar 1, serão redirecionadas todas as saídas da mensagem, inclusive "print".
-i input_file
Identifica o arquivo que contém um lote de instruções SQL ou procedimentos armazenados. O operador de comparação menor que (<) pode ser usado no lugar de -i.
-o output_file
Identifica o arquivo que recebe a saída do osql. O operador de comparação maior que (>) pode ser usado no lugar de -o.
Se o input_file não for Unicode e -u não for especificado, o output_file será armazenado no formato OEM. Se o input_file for Unicode ou -u for especificado, o output_file será armazenado em formato Unicode.
-p
Imprime estatísticas de desempenho.
-b
Especifica que o osql é encerrado e retorna um valor DOS ERRORLEVEL em caso de erro. O valor retornado à variável DOS ERRORLEVEL será 1 quando a mensagem de erro do SQL Server tiver um nível de severidade de 11 ou superior, caso contrário, o valor retornado será 0. Arquivos em lote do Microsoft MS-DOS podem testar o valor de DOS ERRORLEVEL e tratar o erro adequadamente.
-u
Especifica que o output_file é armazenado em formato Unicode, independentemente do formato do input_file.
-R
Especifica que o driver ODBC do SQL Server usa configurações de cliente ao converter dados de moeda, data e hora em dados de caractere.
-O
Especifica que certos recursos do osql sejam desativados para corresponder ao comportamento de versões anteriores do isql. Estes recursos são desativados:
Processamento em lote de EOF
Escalonamento automático da largura do console
Mensagens largas
Também define o valor DOS ERRORLEVEL padrão como -1.
SQL Server 2012
Outras versões
Este tópico ainda não foi avaliado como - Avalie este tópico
O utilitário osql permite inserir instruções Transact-SQL, procedimentos de sistema e arquivos de script. Esse utilitário usa o ODBC para comunicar-se com o servidor.
Observação importante Importante
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novo trabalho de desenvolvimento e planeje modificar os aplicativos que utilizam o recurso atualmente. Em vez disso, use sqlcmd. Para obter mais informações, consulte Utilitário sqlcmd.
Sintaxe
osql
[-?] |
[-L] |
[
{
{-Ulogin_id [-Ppassword]} | –E }
[-Sserver_name[\instance_name]] [-Hwksta_name] [-ddb_name]
[-ltime_out] [-ttime_out] [-hheaders]
[-scol_separator] [-wcolumn_width] [-apacket_size]
[-e] [-I] [-D data_source_name]
[-ccmd_end] [-q "query"] [-Q"query"]
[-n] [-merror_level] [-r {0 | 1}]
[-iinput_file] b][color=#ff0000]-ooutput_file[/color][/b [-p]
[-b] [-u] [-R] [-O]
]
Argumentos
-?
Exibe o resumo da sintaxe de opções osql.
-L
Lista os servidores configurados localmente e os nomes dos servidores que estão transmitindo na rede.
Observação Observação
Devido à natureza da transmissão em redes, o osql pode não receber a tempo uma resposta de todos os servidores. Assim, a lista de servidores retornada pode variar para cada invocação dessa opção.
-U login_id
É a identificação de logon do usuário. IDs de logon diferenciam maiúsculas de minúsculas.
-P password
É uma senha especificada pelo usuário. Se a opção -P não for usada, o osql solicitará a senha. Se a opção -P for usada ao término do prompt de comando sem uma senha, o osql usará a senha padrão (NULL).
Observação sobre segurança Observação sobre segurança
Não use uma senha em branco. Use uma senha forte. Para obter mais informações, consulte Senhas fortes.
As senhas diferenciam maiúsculas e minúsculas.
A variável de ambiente OSQLPASSWORD permite definir uma senha padrão para a sessão atual. Assim, senhas não têm de ser codificadas em arquivos em lote.
Se você não especificar uma senha com a opção -P, o osql verificará primeiro a variável OSQLPASSWORD. Se nenhum valor for definido, o osql usará a senha padrão, NULL. O exemplo seguinte define a variável OSQLPASSWORD em um prompt de comando e então acessa o utilitário osql:
C:\>SET OSQLPASSWORD=abracadabra
C:\>osql
Observação sobre segurançaObservação sobre segurança
Para mascarar a senha, não especifique a opção -P junto com a opção -U. Em vez disso, depois de especificar o osql junto com a opção -U e outras (não especificar a opção -P), pressione ENTER e o osql pedirá uma senha. Esse método garante que sua senha será mascarada quando for inserida.
-E
Usa uma conexão confiável em vez de pedir uma senha.
-S server_name[ \instance_name]
Especifica uma instância do SQL Server a qual se conectar. Especifique o server_name para se conectar à instância padrão do SQL Server nesse servidor. Especifique o server_name\instance_name para se conectar a uma instância nomeada do SQL Server nesse servidor. Se nenhum servidor for especificado, o osql se conectará à instância padrão do SQL Server no computador local. Essa opção é obrigatória quando o osql é executado de um computador remoto na rede.
-H wksta_name
É um nome de estação de trabalho. O nome de estação de trabalho é armazenado em sysprocesses.hostname e exibido pelo sp_who. Se essa opção não for especificada, o nome do computador atual será presumido.
-d db_name
Emite uma instrução USE db_name quando o osqlé iniciado.
-l time_out
Especifica o número de segundos antes de um logon do osql expirar. O tempo limite padrão de logon do osql é de oito segundos.
-t time_out
Especifica o número de segundos antes de um comando expirar. Se não for especificado um valor de time_out, os comandos não vão expirar.
-h headers
Especifica o número de linhas a imprimir entre cabeçalhos de coluna. O padrão é imprimir títulos uma vez para cada conjunto de resultados de consulta. Use -1 para especificar que nenhum cabeçalho será impresso. Se -1 for usado, não deve haver nenhum espaço entre o parâmetro e a configuração (-h-1, não -h -1).
-s col_separator
Especifica o caractere do separador de colunas que, por padrão, é um espaço em branco. Para usar um caractere com um significado especial para o sistema operacional como, por exemplo, | ; & < >), coloque-o entre aspas duplas (").
-w column_width
Permite ao usuário definir a largura da tela de saída. O padrão é de 80 caracteres. Quando uma linha de saída alcança sua largura de tela máxima, ela é quebrada em várias linhas.
-a packet_size
Permite solicitar um pacote de tamanho diferente. Os valores válidos de packet_size são de 512 a 65535. O valor padrão osql é o padrão do servidor. Um tamanho de pacote maior pode aumentar o desempenho na execução de scripts maiores, em que a quantidade de instruções SQL entre comandos GO é substancial. Testes da Microsoft indicam que 8192 geralmente é a configuração mais rápida para operações de cópia em massa. Um tamanho de pacote maior pode ser solicitado, mas o osql assumirá como padrão o padrão do servidor se a solicitação não puder ser atendida.
-e
Duplica a entrada.
-I
Ativa a opção de conexão QUOTED_IDENTIFIER.
-D data_source_name
Conecta-se a uma fonte de dados ODBC que é definida usando o driver ODBC do SQL Server. A conexão osql usa as opções especificadas na fonte de dados.
Observação Observação
Essa opção não trabalha com fontes de dados definidas para outros drivers.
-c cmd_end
Especifica o terminador de comando. Por padrão, comandos são encerrados e enviados ao SQL Server se GO for inserido sozinho em uma linha. Quando você redefinir o terminador de comando, não use palavras reservadas do Transact-SQL nem caracteres que tenham significado especial para o sistema operacional, sejam ou não precedidos por uma barra invertida.
-q " query "
Executa uma consulta quando o osql inicia, mas não encerra o osql quando a consulta é concluída. (Observe que a instrução de consulta não deve incluir a instrução GO). Se você emitir uma consulta de um arquivo em lote, use %variáveis ou %variáveis% de ambiente. Por exemplo:
SET table=sys.objects
osql -E -q "select name, object_id from %table%"
Coloque a consulta entre aspas duplas e qualquer coisa incorporada na consulta entre aspas simples.
-Q " query "
Executa uma consulta e imediatamente encerra o osql. Coloque a consulta entre aspas duplas e qualquer coisa incorporada na consulta entre aspas simples.
-n
Remove a numeração e o símbolo de prompt (>) das linhas de entrada.
-m error_level
Personaliza a exibição de mensagens de erro. São exibidos o número da mensagem, o estado e o nível de erros com o nível de severidade especificado ou superior. Nada é exibido para erros de níveis abaixo do nível especificado. Use -1 para especificar que todos os cabeçalhos retornem com mensagens, até mesmo mensagens informativas. Se -1 for usado, não deverá haver espaço entre o parâmetro e a configuração (-m-1, não -m -1).
-r { 0| 1}
Redireciona a saída da mensagem para a tela (stderr). Se você não especificar um parâmetro ou especificar 0, serão redirecionadas somente mensagens de erro com nível de severidade 11 ou superior. Se você especificar 1, serão redirecionadas todas as saídas da mensagem, inclusive "print".
-i input_file
Identifica o arquivo que contém um lote de instruções SQL ou procedimentos armazenados. O operador de comparação menor que (<) pode ser usado no lugar de -i.
-o output_file
Identifica o arquivo que recebe a saída do osql. O operador de comparação maior que (>) pode ser usado no lugar de -o.
Se o input_file não for Unicode e -u não for especificado, o output_file será armazenado no formato OEM. Se o input_file for Unicode ou -u for especificado, o output_file será armazenado em formato Unicode.
-p
Imprime estatísticas de desempenho.
-b
Especifica que o osql é encerrado e retorna um valor DOS ERRORLEVEL em caso de erro. O valor retornado à variável DOS ERRORLEVEL será 1 quando a mensagem de erro do SQL Server tiver um nível de severidade de 11 ou superior, caso contrário, o valor retornado será 0. Arquivos em lote do Microsoft MS-DOS podem testar o valor de DOS ERRORLEVEL e tratar o erro adequadamente.
-u
Especifica que o output_file é armazenado em formato Unicode, independentemente do formato do input_file.
-R
Especifica que o driver ODBC do SQL Server usa configurações de cliente ao converter dados de moeda, data e hora em dados de caractere.
-O
Especifica que certos recursos do osql sejam desativados para corresponder ao comportamento de versões anteriores do isql. Estes recursos são desativados:
Processamento em lote de EOF
Escalonamento automático da largura do console
Mensagens largas
Também define o valor DOS ERRORLEVEL padrão como -1.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- caiotec
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 219
- Obrigados Recebidos: 0
12 anos 5 meses atrás #1972
por caiotec
Respondido por caiotec no tópico Re: gerar arquivo texto apartr do SQL
Luiz
Também da pra fazer isso alterando a opção do grid na barra de ferramentas(uso no SQL 2000), No SQL 2005, 2008 e 2012 eu ainda não testei mas acredito que deve ser a mesma coisa.
Também da pra fazer isso alterando a opção do grid na barra de ferramentas(uso no SQL 2000), No SQL 2005, 2008 e 2012 eu ainda não testei mas acredito que deve ser a mesma coisa.
Por favor Acessar ou Registrar para participar da conversa.
- alyson
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 118
- Obrigados Recebidos: 1
12 anos 4 meses atrás #2331
por alyson
Respondido por alyson no tópico Re: gerar arquivo texto apartr do SQL
Roda o exemplo pode dar uma luz.... ai só incluir uma consulta e utilizar essa rotina para gravar no txt. se não me engando se colocar .doc salva tambem .pdf ai tem que testar...
#include "FileIO.ch"
user function GeraArq
local cArq := "c:\Temp\Arquivo.txt"
local nHandle
local cTexto := ""
locaL nInd
nHandle := FCREATE(cArq, FC_NORMAL)
if nHandle < 0
Alert("Erro ao abrir o arquivo de texto!" + FERROR())
Return
endif
//Escreve no arquivo
// voce pode fazer uma consulta sql o resultado atribuir dentro do cTexto
for nInd := 1 to 1001
cTexto := cValToChar(nInd) + Chr(13)
if FWRITE(nHandle, cTexto, Len(cTexto)) <> Len(cTexto)
Alert("Erro na gravação dos registros!")
endif
next
//Fecha o arquivo
FCLOSE(nHandle)
return
#include "FileIO.ch"
user function GeraArq
local cArq := "c:\Temp\Arquivo.txt"
local nHandle
local cTexto := ""
locaL nInd
nHandle := FCREATE(cArq, FC_NORMAL)
if nHandle < 0
Alert("Erro ao abrir o arquivo de texto!" + FERROR())
Return
endif
//Escreve no arquivo
// voce pode fazer uma consulta sql o resultado atribuir dentro do cTexto
for nInd := 1 to 1001
cTexto := cValToChar(nInd) + Chr(13)
if FWRITE(nHandle, cTexto, Len(cTexto)) <> Len(cTexto)
Alert("Erro na gravação dos registros!")
endif
next
//Fecha o arquivo
FCLOSE(nHandle)
return
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- Instalação e Configuração Protheus
- Banco de Dados
- gerar arquivo texto apartr do SQL
Tempo para a criação da página:0.090 segundos