Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2007, 15:58
javierrm
 
Fecha de Ingreso: abril-2004
Ubicación: Morelos, México
Mensajes: 124
Antigüedad: 20 años
Puntos: 0
Como verificar si un valor es numerico o tiene letras en postgres

Saludos a todos los expertos, estoy programando en php y postgres, pero me surgio un problema. En la parte donde estoy migrando algunas consultas hechas en foxpro a postgres, no encuentro la funcion para saber si un valor es numerico o tiene numeros y tambien letras.

La tabla regfactura contiene una serie de campos algunos numericos y otros de tipo caracter. EL campo numfactura es de tipo caracter y almacena catindades como:
10000000
12000000
FR11000000
FR13000000
FR23000000
FR33000000
...

El siguiente codigo es parte de las instrucciones que corren en vfoxpro
Código PHP:

select 
*
from regfactura
Order By Fecha desc
,iif(val(numfactura)=0,val(right(numfactura,8)),val(numfactura) )"; 
Al pasarlo a postgres esto quedaria mas o menos asi.......
Código PHP:
select *
from regfactura
Order By Fecha desc

    case 
when int8(numfactura) = 0 then int8(substr(numfacturalength(numfactura)-78))
    else 
numfactura
    end

Solo que marca un error cuando utilizo int8 para convertir a numfactura en entero

El error que arroja es el siguiente: me imagino que es porq tiene letras, decir es alfanumerico
Código PHP:
ERROR:  la sintaxis de entrada no es válida para integer«FR11000000» 
Estoy en este momento buscando la forma de verificar si el valor de numfactura es completamente numerico que mande true o "0", o si tiene letras con numeros que mande "1".....


Espero q me puedan ayudar... seguire buscando a ver si encuentro la forma correcta de resolverlo......

Gracias por todo y disculpen las molestias que causo
(jrm)