Perguntas gerar arquivo texto apartr do SQL

Mais
12 anos 6 meses atrás #1729 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

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 6 meses atrás #1731 por lalberto
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.

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.

Mais
12 anos 5 meses atrás #1972 por caiotec
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.

Por favor Acessar ou Registrar para participar da conversa.

Mais
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

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.090 segundos
Joomla templates by a4joomla