Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-23 Por tôpico Matheus de Oliveira
2012/5/22 Alexsander Rosa alexsander.r...@gmail.com Sugiro incluir alguma segurança: calcule('true; TRUNCATE tabela_importante') funciona. Fato. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-22 Por tôpico Alexsander Rosa
Sugiro incluir alguma segurança: calcule('true; TRUNCATE tabela_importante') funciona. Em 20 de maio de 2012 10:05, Matheus de Oliveira matioli.math...@gmail.comescreveu: 2012/5/20 Anselmo Silva anselmo@gmail.com Qual versão do PostgreSQL fizeste? Resultado: ao criar a função :

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-20 Por tôpico Anselmo Silva
Qual versão do PostgreSQL fizeste? Resultado: ao criar a função : AVISO: uso de escape fora do padrão em cadeia de caracteres LINE 1: SELECT 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-... ao executá-la usando: *Calcule ('1/10')* ERRO: erro de sintaxe em ou próximo a  SQL state:

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-20 Por tôpico Matheus de Oliveira
2012/5/20 Anselmo Silva anselmo@gmail.com Qual versão do PostgreSQL fizeste? Resultado: ao criar a função : AVISO: uso de escape fora do padrão em cadeia de caracteres LINE 1: SELECT 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-... ao executá-la usando: *Calcule ('1/10')*

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-19 Por tôpico Matheus de Oliveira
Essa função em si não parece ser uma boa prática, mas dá pra usar expressão regular pra tentar fazer o que você quer. Exemplo: CREATE OR REPLACE FUNCTION CALCULE (calculo text) RETURNS NUMERIC AS $$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)',

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-19 Por tôpico Matheus de Oliveira
2012/5/19 Matheus de Oliveira matioli.math...@gmail.com Essa função em si não parece ser uma boa prática, mas dá pra usar expressão regular pra tentar fazer o que você quer. Exemplo: CREATE OR REPLACE FUNCTION CALCULE (calculo text) RETURNS NUMERIC AS $$ DECLARE v_result numeric;

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-14 Por tôpico Anselmo Silva
Pessoal, andei lendo mais e meu resultado mais estruturado é o seguinte: CREATE FUNCTION DivIntToNum(i1 integer, i2 integer) RETURNS NUMERIC AS $BODY$ SELECT CAST($1 AS NUMERIC) / CAST($2 AS NUMERIC); $BODY$ LANGUAGE SQL; CREATE OPERATOR !/ ( leftarg = integer, rightarg =

[pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Anselmo Silva
Pergunta de newbie de PostgreSQL. Pretendo fazer uma função que me faça um cálculo matemático de um text passado como parâmetro. Algo Assim: CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC... Até aí tudo bem. Mas me deparei com uma regra que não entendi direito, mas, deve ter um motivo:

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Rodrigo Della Justina
olhe a expressão CAST, para te auxiliar utilizando esse cálculo # http://www.postgresql.org/docs/8.3/static/sql-expressions.html Att Rodrigo Em 12 de maio de 2012 14:48, Anselmo Silva anselmo@gmail.com escreveu: Pergunta de newbie de PostgreSQL. Pretendo fazer uma função que me faça um

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Anselmo Silva
Rodrigo Della, conheço o cast. Mas, Como eu disse, não queria tratar a string. Na sua sugestão para obter meu resultado eu teria que fazer o seguinte: SELECT CAST('1' AS NUMERIC) / CAST ('10' AS NUMERIC) Considere que recebo a string já pronta. Em 12 de maio de 2012 14:58, Rodrigo Della Justina

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Leandro DUTRA, Guimarães Faria Corcete
Le 2012-5-12 15h8, Anselmo Silva a écrit : conheço o cast. Mas, Como eu disse, não queria tratar a string Não entendi, por que não? É a coisa certa, tanto pela teoria, quanto pelo padrão ISO SQL. Não existe cálculo sobre seqüência de caracteres. Outros sistemas implementam, mas os detalhes

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Fabrízio de Royes Mello
Em 12 de maio de 2012 18:02, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Para este caso em particular (uma operação aritmética) creio que funcionaria colocar em sua função: EXECUTE 'SELECT ' || parametro ||'::numeric;' INTO resultado; Essa solução não resolve por completo expressões

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Osvaldo Kussama
Em 12/05/12, Anselmo Silvaanselmo@gmail.com escreveu: Pergunta de newbie de PostgreSQL. Pretendo fazer uma função que me faça um cálculo matemático de um text passado como parâmetro. Algo Assim: CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC... Até aí tudo bem. Mas me deparei

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Osvaldo Kussama
Em 12/05/12, Fabrízio de Royes Mellofabriziome...@gmail.com escreveu: Em 12 de maio de 2012 18:02, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Para este caso em particular (uma operação aritmética) creio que funcionaria colocar em sua função: EXECUTE 'SELECT ' || parametro

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Anselmo Silva
Osvaldo Kussama, para a necessidade do momento eu já tinha feito um RTA do seguinte modo: EXECUTE 'SELECT ' || parametro ||'.0' INTO resultado; quase idêntico à sua sugestão (a sua leva vantagens). O que eu queria era saber se, por curiosidade, havia algo mais estruturado já pronto no próprio

Re: [pgbr-geral] Divisão de inteiros com resultado numeric

2012-05-12 Por tôpico Leandro Guimarães Faria Corcete DUTRA
Le 2012-5-12 16h16, Anselmo Silva a écrit : acredito que tem uma razão para isso, que reconheço não saber Basicamente, é porque a linguagem SQL tem de ter comportamento consistente, e respeitar a definição dos tipos dos dados. Isso não é uma opção, é parte da definição da linguagem