[pgbr-geral] RES: REF: SELECT com EXECUTE.

2015-06-24 Thread PAULO
>>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.

2015-06-24 Thread PAULO
>>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.

2015-06-24 Thread André Ormenese
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 Thread Matheus de Oliveira
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