[pgbr-geral] RES: REF: SELECT com EXECUTE.
>>Assim vai ? >>EXECUTE 'SELECT '|| ufCliente ||' INTO resultado FROM cfop WHERE cod_cfop = ' >>|| p_cfop; Já tinha Tentado, retorna o seguinte erro: ERRO: operador não existe: character varying = integer LINE 1: SELECT sp INTO resultado FROM cfop WHERE cfop = 5102 ^ HINT: Nenhum operador corresponde com o nome e o(s) tipo(s) de argumento(s) informados. Você precisa adicionar conversões de tipo explícitas. QUERY: SELECT sp_ INTO resultado FROM cfop WHERE cfop = 5102 CONTEXT: PL/pgSQL function "aliq_cli" line 5 at comando EXECUTE ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: REF: SELECT com EXECUTE.
>>DECLARE >> v_sql text; ... >>v_sql := format('SELECT %I FROM cfop WHERE cod_cfop = $1', ufCliente); >>RAISE NOTICE 'SQL: %', v_sql; -- não necessário, só para visualizar >>EXECUTE v_sql INTO resultado USING p_cfop; >>RETURN resultado; >>... Show de bola, grande Matheus, 100% funcional. Agradeço a todos os colegas que responderam. Abraços, Paulo. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: REF: SELECT com EXECUTE.
ufCliente é string e você está tentado armazenar em "resultado" que é integer !! Em 24 de junho de 2015 09:49, PAULO escreveu: > >>Assim vai ? > > > > >>EXECUTE 'SELECT '|| ufCliente ||' INTO resultado FROM cfop WHERE > cod_cfop = ' || p_cfop; > > > > > > Já tinha Tentado, retorna o seguinte erro: > > > > ERRO: operador não existe: character varying = integer > > LINE 1: SELECT sp INTO resultado FROM cfop WHERE cfop = 5102 > >^ > > HINT: Nenhum operador corresponde com o nome e o(s) tipo(s) de > argumento(s) informados. Você precisa adicionar conversões de tipo > explícitas. > > QUERY: SELECT sp_ INTO resultado FROM cfop WHERE cfop = 5102 > > CONTEXT: PL/pgSQL function "aliq_cli" line 5 at comando EXECUTE > > > > > > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: REF: SELECT com EXECUTE.
2015-06-24 10:01 GMT-03:00 André Ormenese : > ufCliente é string e você está tentado armazenar em "resultado" que é > integer !! > > Não é esse o problema. E por favor, evite top-posting, fica bem complicado entender do que você está falando... Veja como fiz abaixo: > Em 24 de junho de 2015 09:49, PAULO > escreveu: > >> >>Assim vai ? >> >> >> >> >>EXECUTE 'SELECT '|| ufCliente ||' INTO resultado FROM cfop WHERE >> cod_cfop = ' || p_cfop; >> >> >> >> >> >> Já tinha Tentado, retorna o seguinte erro: >> >> >> >> ERRO: operador não existe: character varying = integer >> >> LINE 1: SELECT sp INTO resultado FROM cfop WHERE cfop = 5102 >> >>^ >> > Esse erro é na comparação de "cfop", que é do tipo varchar, com 5102, que é um literal inteiro. De qualquer forma eu fico com a solução que tinha proposta anteriormente, que também resolve esse problema (e do INTO que foi esquecido aqui). Atenciosamente, -- Matheus de Oliveira ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral