Olá Pessoal,
Estou tentando executar um SELECT com EXECUTE, porém não estou conseguindo.
CREATE OR REPLACE FUNCTION aliquota_cliente (ufCliente char(2), p_cfop
char(5)) RETURNS integer AS $$
DECLARE
resultado integer ;
BEGIN
EXECUTE 'SELECT '|| ufCliente ||' INTO resultado FROM
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
2015-06-24 9:24 GMT-03:00 PAULO pa...@visualpsistemas.com.br:
EXECUTE 'SELECT '|| ufCliente ||' INTO resultado FROM cfop WHERE
cod_cfop = '||'p_cfop';
RETURN resultado;
Dois erros:
1. O INTO que você quer é parte do EXECUTE, não do SELECT (da forma como
fez, executaria, mas criaria
2015-06-24 10:01 GMT-03:00 André Ormenese aormen...@gmail.com:
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
Boa tarde,
Estou modelando uma base de dados onde em alguns casos eu tenho até 12
campos na chave primária.
Estas tabelas ficam na borda da modelagem, ou seja, são tabelas de
movimentação as quais recebem um número maior de registros.
Gostaria da opinião dos colegas se isso pode significar
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;
...
Em 24 de junho de 2015 13:50, Márcio A. Sepp
mar...@zyontecnologia.com.br escreveu:
Estou modelando uma base de dados onde em alguns casos eu tenho até 12
campos na chave primária.
Normal, independente da chave ser primária ou alternativa.
Estas tabelas ficam na borda da modelagem, ou seja,
Em 24 de junho de 2015 16:02, Márcio A. Sepp
mar...@zyontecnologia.com.br escreveu:
Deu pro gasto! Rsss Muito obrigado!
De nada.
Só pra te falar, minhas tabelas são +/- assim:
Tabela1
* pk_tab1
Tabela2
* pk_tab1
* pk_tab2
Tabela3
* pk_tab1
* pk_tab2
* pk_tab3
...
Tabela6
Acho que ficou um pouco confusa minha explicação, ou deu para o gasto?
Deu pro gasto! Rsss Muito obrigado!
Só pra te falar, minhas tabelas são +/- assim:
Tabela1
* pk_tab1
Tabela2
* pk_tab1
* pk_tab2
Tabela3
* pk_tab1
* pk_tab2
* pk_tab3
...
Tabela6
* pk_tab1
...
...
* pk_tab12