Estou utilizando o BEF 13.1 e preciso utilizar uma StoredProcedure que retorna uma TABLE.
Hoje para executa-la utilizo uma Query, mas preciso fazer o tratamento de qual banco de dados estou utilizando (Oracle/SQL), pois elas são chamadas de forma distintas pelos BD.
Não quero utilizar ela dessa forma, então tentei trata-la como uma StoredProcedure, pensando que ao fazer isso o BEF iria tratar as diferenças do BD automaticamente, então segui os passos descritos no link: http://wiki.benner.com.br/wiki/index.php?title=Projeto_Jacobus_-_Implementa%C3%A7%C3%A3o_I_-_Discuss%C3%A3o_sobre_execu%C3%A7%C3%A3o_de_queries_complexas_e_stored_procedures/Sugest%C3%A3o_de_implementa%C3%A7%C3%A3o#Execu.C3.A7.C3.A3o_de_stored_procedure_com_defini.C3.A7.C3.A3o_de_entidade_criada_programaticamente_e_com_resultset
Mas ao fazer isso tenho o erro: “Additional information: The request for procedure 'procedure' failed because 'procedure' is a table valued function object”.
Exemplo da Procedure:
Procedure ExemploRetornavel(
parametroEntrada01 IN Int
)
Returns Table ExemploRetornavel.type (
tNome Varchar(100),
tDataNascimento Date,
tTipoPessoa Int
);
{...}
Exemplo de SELECT:
SQL:
SELECT (NOME, DATANASCIMENTO, TIPOPESSOA) FROM ExemploRetornavel(10);
Oracle:
SELECT (NOME, DATANASCIMENTO, TIPOPESSOA) FROM TABLE(ExemploRetornavel(10));
Minha dúvida, tem alguma forma de fazer isso, sem ser verificando qual o tipo de BD estou utilizando?!