Mudanças entre as edições de "Função @NUMERIC"

(Parâmetros)
 
Linha 1: Linha 1:
A função @NUMERIC é utilizada para verificar se um valor pode ser interpretado como um número. Ela retorna TRUE se a entrada for um valor numérico e FALSE caso contrário
+
A função @NUMERIC é utilizada para conversão do tipo numérico para cada banco de dados.
  
 
==='''Sintaxe'''===
 
==='''Sintaxe'''===
Linha 12: Linha 12:
 
|@NUMERIC
 
|@NUMERIC
 
|PostgreSQL
 
|PostgreSQL
|VALOR ~ '^[0-9]+(\.[0-9]+)?$'
+
|NUMERIC
 
|-
 
|-
 
|-
 
|-
 
|@NUMERIC
 
|@NUMERIC
 
|Oracle
 
|Oracle
|CASE WHEN REGEXP_LIKE(VALOR, '^[0-9]+(\.[0-9]+)?$') THEN 1 ELSE 0 END
+
|NUMERIC(15,6)
 
|-
 
|-
 
|@NUMERIC
 
|@NUMERIC
 
|FireBird
 
|FireBird
|IIF(VALOR SIMILAR TO '[0-9]+(\.[0-9]+)?', 1, 0)
+
|NUMERIC
 
|-
 
|-
 
|@NUMERIC
 
|@NUMERIC
 
|SQLServer
 
|SQLServer
|ISNUMERIC(VALOR)
+
|FLOAT
 
|-
 
|-
 
|}
 
|}
Linha 31: Linha 31:
 
==='''Exemplos'''===
 
==='''Exemplos'''===
  
  procedure FiltrarNumericos;  
+
  procedure ExecutarSQL;  
 
  var
 
  var
 
   Q: TPHQuery;
 
   Q: TPHQuery;
Linha 39: Linha 39:
 
     Q.Add('SELECT * ' +
 
     Q.Add('SELECT * ' +
 
           'FROM DADOS ' +
 
           'FROM DADOS ' +
           'WHERE CAST(CAMPO_TEXTO AS @NUMERIC) > 0');
+
           'WHERE CAST(CAMPO AS @NUMERIC) > 0');
 
   finally
 
   finally
 
     Q.Free;
 
     Q.Free;
Linha 45: Linha 45:
 
  end;
 
  end;
 
  begin
 
  begin
   FiltrarNumericos;
+
   ExecutarSQL;
 
  end.
 
  end.

Edição atual tal como às 20h46min de 15 de setembro de 2025

A função @NUMERIC é utilizada para conversão do tipo numérico para cada banco de dados.

Sintaxe

@NUMERIC

Nome Banco Descrição
@NUMERIC PostgreSQL NUMERIC
@NUMERIC Oracle NUMERIC(15,6)
@NUMERIC FireBird NUMERIC
@NUMERIC SQLServer FLOAT

Exemplos

procedure ExecutarSQL; 
var
  Q: TPHQuery;
begin
  try
    Q := NewPHQuery;
    Q.Add('SELECT * ' +
          'FROM DADOS ' +
          'WHERE CAST(CAMPO AS @NUMERIC) > 0');
  finally
    Q.Free;
  end;
end;
begin
  ExecutarSQL;
end.