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

(Exemplo)
 
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
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'''===
  
@Numeric
+
@NUMERIC
  
==='''Parâmetros'''===
 
 
{| class="wikitable" style="width: 100%"
 
{| class="wikitable" style="width: 100%"
 
! Nome  
 
! Nome  
Linha 11: Linha 10:
 
!Descrição
 
!Descrição
 
|-
 
|-
|@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 32: Linha 31:
 
==='''Exemplos'''===
 
==='''Exemplos'''===
  
  procedure FiltrarNumericos;  
+
  procedure ExecutarSQL;  
 
  var
 
  var
 
   Q: TPHQuery;
 
   Q: TPHQuery;
Linha 40: Linha 39:
 
     Q.Add('SELECT * ' +
 
     Q.Add('SELECT * ' +
 
           'FROM DADOS ' +
 
           'FROM DADOS ' +
           'WHERE @NUMERIC(CAMPO_TEXTO) = TRUE');
+
           'WHERE CAST(CAMPO AS @NUMERIC) > 0');
 
   finally
 
   finally
 
     Q.Free;
 
     Q.Free;
Linha 46: 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.