Estou criando uma procedure no qual ela escreve alguns dados em uma tabela, dessa tabela, eu gero um arquivo .txt pelo spool.
Como eu quero tudo na mesma procedure, eu deixei o spool em um arquivo.sql para a procedure ler e executar, porem esta dando erro na hora que gero a procedure. Alguém pode me ajudar? Abaixo tem os códigos que estou utilizando.
Procedure;
create or replace PROCEDURE EXPORT_DADOS_TELEMETRIA (VAR1 IN VARCHAR2, VAR2 IN VARCHAR2)AS
--VAR1 --> TIPO DO SEPARADOR
--VAR2 --> DATA DE PESQUISA
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE DADOS_TELEMETRIA';
INSERT INTO DADOS_TELEMETRIA
SELECT VAR2||VAR1||
COL1||VAR1||
COL2||VAR1||
COL3||VAR1||
COL4||VAR1
AS STRING
FROM TABELA
WHERE TO_CHAR(COL5,'YYYYMMDD')>=VAR2;
EXECUTE IMMEDIATE '@C:\TESTE\TXT\export_txt.sql'; ----> Onde acontece o erro
END EXPORT_DADOS_TELEMETRIA;
Codigo do Spool:
set heading off
set trimspool on
set linesize 1520
set pagesize 50000
set echo off
set feedback off
col nome_arq new_value arquivo;
SELECT 'EXP_'||TO_CHAR(SYSDATE, 'YYMMDDHH24MI')||'.txt' as nome_arq from dual;
spool C:\TESTE\TXT\&arquivo
SELECT * FROM DADOS_TELEMETRIA;
EXEC EXPORT_DADOS_TELEMETRIA (';','20170101')
EXECUTE IMMEDIATE '@C:\TESTE\....
Da mesma maneira que se eu executo apenas o @C:\TESTE\.... ele funciona também, mas preciso deixar os dois na mesma procedure para entregar a uma pessoa.