Pesquisei em vários lugares, porém, não encontrei sinais de solução.
Necessidade: Passar nome da tabela na entrada da FUNÇÃO e COMPILAR
Possuo uma PROC que lê um arquivo e insere o dados em uma devida tabela, porém essa tabela é criada quando se inicia a PROC, ou seja, a tabela não tem um nome fixo, porque eu utilizo a data e hora para diferenciar o arquivo.
ex.: FILE_20170123170001
SELECT TO_CHAR(SYSDATE, 'DDMMYYYHHMMSS') INTO V_NM_TABLE FROM DUAL;
V_NM_TABLE := 'FILE_'||V_NM_TABLE ;
A função está criada e funciona quando a tabela EXISTE no BD, segue função abaixo:
CREATE OR REPLACE FUNCTION NOME_FUNCAO (CPF IN VARCHAR2, [b]NM_TABELA[/b] IN VARCHAR2)
RETURN VARCHAR2
...
BEGIN
...
For rCli in (
Select TELEFONE,CPFCGC from [b]NM_TABELA[/b] where CPFCGC = documento and ROWNUM <= 30
)
LOOP
...
END LOOP;
...
END;
Eu tentei fazer o seguinte: Criei a tabela, e testei a função, td certo! Depois apaguei a tabela e inseri a variavel, ai falho! então como não tinha nada a perder, criei a tabela com o nome da função, deu certo! compilei a função, deu certo! ai apaguei a tabela e tentei usar a função, rsrs... deu erro dizendo que a função está inválida. Enfim, não sei mais o que fazer.
Se alguém puder me ajuda, desde já, obrigado.