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
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 :
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:
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')*
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]+)',
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;
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 =
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:
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
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
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
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
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
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
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
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
16 matches
Mail list logo