ALTER PROCEDURE "GetProdAgro" ( IN pCompanyDb NVARCHAR(128), IN pObjId INT, IN pTblSuffix NVARCHAR(3), IN pDocEntry INT ) LANGUAGE SQLSCRIPT SQL SECURITY INVOKER AS BEGIN -- Declarar variável de consulta DECLARE v_query NVARCHAR(10000); -- Criar tabela temporária local CREATE LOCAL TEMPORARY TABLE #TabelaAgro ( "U_TX_nReceituario" NVARCHAR(100), "U_TX_CPFRespTec" NVARCHAR(100), "U_TX_tpGuia" NVARCHAR(100), "U_TX_UFGuia" NVARCHAR(100), "U_TX_serieGuia" NVARCHAR(100), "U_TX_nGuia" NVARCHAR(100) ); -- Montar consulta dinâmica v_query := 'INSERT INTO #TabelaAgro ' || 'SELECT ' || 'IFNULL(T1."U_TX_nReceituario", '''') AS "U_TX_nReceituario", ' || 'IFNULL(T1."U_TX_CPFRespTec", '''') AS "U_TX_CPFRespTec", ' || 'IFNULL(T1."U_TX_tpGuia", '''') AS "U_TX_tpGuia", ' || 'IFNULL(T1."U_TX_UFGuia", '''') AS "U_TX_UFGuia", ' || 'IFNULL(T1."U_TX_serieGuia", '''') AS "U_TX_serieGuia", ' || 'IFNULL(T1."U_TX_nGuia", '''') AS "U_TX_nGuia" ' || 'FROM "' || :pCompanyDb || '"."O' || :pTblSuffix || '" T1 ' || 'WHERE T1."DocEntry" = ' || TO_NVARCHAR(:pDocEntry); -- Executar SQL dinâmico EXECUTE IMMEDIATE :v_query; -- Selecionar resultado da tabela temporária SELECT "U_TX_nReceituario" AS "NumeroReceituario", "U_TX_CPFRespTec" AS "CpfRespTec", "U_TX_tpGuia" AS "TipoGuia", "U_TX_UFGuia" AS "UfGuia", "U_TX_serieGuia" AS "SerieGuia", "U_TX_nGuia" AS "NumeroGuia" FROM #TabelaAgro; DROP TABLE #TabelaAgro; END;