Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Operações com arquivos utilizando OLE Automation no SQL Server

Visualizações: 4.461 views
Tempo de Leitura: 7 minutos

Olá Pessoal,
Boa noite!

Lembram do post que eu fiz sobre Habilitando OLE Automation via T-SQL no SQL Server onde eu falei que iria postar sobre umas funções legais exemplificando a utilização do OLE Automation no SQL Server? Então, é esse o post 🙂

Para não colocar muitas Stored Procedures e Functions aqui no post e deixá-lo muito extenso, criei um arquivo compactado com o código-fonte dos scripts que estão disponíveis aqui e vou apenas explicar a utilização de cada um deles.

fncArquivo_Existe_FSO
fncArquivo_Existe_FSO: Função que retorna se um arquivo existe (1) ou não (0).
Utilização: SELECT CLR.dbo.fncArquivo_Existe_FSO(‘C:\Teste.txt’)

Código-fonte:

fncDiretorio_Existe_FSO
fncDiretorio_Existe_FSO: Função que retorna se um diretório existe (1) ou não (0).
Utilização: SELECT CLR.dbo.fncDiretorio_Existe_FSO(‘C:\Dirceu’)

Código-fonte:

fncLer_Arquivo_FSO
fncLer_Arquivo_FSO: Função que lê o conteúdo de um arquivo e retorna uma tabela onde cada linha do arquivo é uma linha na tabela.
Utilização: SELECT * FROM CLR.dbo.fncLer_Arquivo_FSO(‘C:\Teste.txt’)

Código-fonte:

stpApaga_Arquivo_FSO
stpApaga_Arquivo_FSO: Stored Procedure que apaga fisicamente um arquivo.
Utilização: EXEC CLR.dbo.stpApaga_Arquivo_FSO ‘C:\Teste.txt’

Código-fonte:

stpCopia_Arquivo_FSO
stpCopia_Arquivo_FSO: Stored Procedure que copia fisicamente um arquivo de um diretório para outro.
Utilização: EXEC CLR.dbo.stpCopia_Arquivo_FSO ‘C:\Teste.txt’, ‘C:\Arquivos\Novo_Arquivo.log’, 1 — Vai sobrescrever se já existir (3º parâmetro)

Código-fonte:

stpEscreve_Arquivo_FSO
stpEscreve_Arquivo_FSO: Script que grava o conteúdo de uma variável ou texto em um arquivo no disco.
Utilização: EXEC CLR.dbo.stpEscreve_Arquivo_FSO(‘C:\Teste.txt’, ‘Teste de Escrita em Arquivo’)

Código-fonte:

stpEscreve_Arquivo_V2_FSO
stpEscreve_Arquivo_V2_FSO: Script que grava o conteúdo de uma variável ou texto em um arquivo no disco. Caso o diretório não exista, ela irá criar.
Utilização: EXEC dbo.stpEscreve_Arquivo_V2_FSO(‘C:\Teste.txt’, ‘Teste de Escrita em Arquivo’)

Código-fonte:

stpCria_Diretorio_FSO
stpCria_Diretorio_FSO: Stored Procedure que cria um diretório no disco. Se já existir, a Stored Procedure irá ignorar.
Utilização: EXEC dbo.stpCria_Diretorio_FSO(‘C:\Dirceu’)

Código-fonte:

stpInformacoes_Arquivo_FSO
stpInformacoes_Arquivo_FSO: Stored Procedure que retorna informações sobre o arquivo, como tipo, tamanho, data de criação e modificação.
Utilização: EXEC CLR.dbo.stpInformacoes_Arquivo_FSO(‘C:\Teste.txt’)

Código-fonte:

stpMove_Arquivo_FSO
stpMove_Arquivo_FSO: Stored Procedure que move fisicamente um arquivo de um diretório para outro.
Utilização: EXEC CLR.dbo.stpMove_Arquivo_FSO ‘C:\Teste.txt’, ‘C:\Arquivos\Novo_Arquivo.log’, 1 — Vai sobrescrever se já existir (3º parâmetro)

Código-fonte:

Viram como é fácil e simples? Agora vocês já podem brincar com arquivos sem se descabelar tendo que criar as funções e stored procedures usando C# e compilando o database CLR (Caso você queira utilizar o CLR para manipulação de arquivos ao invés do OLE Automation, O QUE EU RECOMENDO, acesse o post Como listar, ler, escrever, copiar e mover arquivos com o CLR (C#)).

De brinde, vou passar mais uma stored procedure pra vocês, que tem a função de a partir de um caminho de arquivo, separar o diretório e o arquivo em duas variáveis distintas:

stpArquivo_Separa_Nome_Diretorio:

Modo de utilização:

Isso é tudo pessoal!
Até a próxima postagem.