Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Caracteres comodín en SQL Oracle

Estas en el tema de Caracteres comodín en SQL Oracle en el foro de Bases de Datos General en Foros del Web. Buenos días: Mi pregunta es la siguiente: Tengo un campo que puede tener tanto dígitos como caracteres. Necesito saber qué registros son los que tienen ...
  #1 (permalink)  
Antiguo 20/05/2005, 03:18
 
Fecha de Ingreso: diciembre-2001
Ubicación: Bilbao
Mensajes: 182
Antigüedad: 22 años, 4 meses
Puntos: 0
Caracteres comodín en SQL Oracle

Buenos días:

Mi pregunta es la siguiente:
Tengo un campo que puede tener tanto dígitos como caracteres. Necesito saber qué registros son los que tienen alguna letra, en cualquier posición.
Estoy haciedo
Select * from tabla where campo like '%[A-Z]%'

Pero no me funciona. Creo que esto sólo es para SQL Server ¿Verdad? ¿Cómo sería para Oracle?

Muchas gracias.
__________________
Un saludo, y gracias de antemano.

Iker M.
  #2 (permalink)  
Antiguo 20/05/2005, 09:57
 
Fecha de Ingreso: mayo-2005
Mensajes: 16
Antigüedad: 19 años
Puntos: 0
Oracle soporta la sintaxis de Perl para el manejo de patrones en strings.
Por lo tanto, primero tenes que definir la expresion regular que queres buscar. Luego usa la funcion match del paquete owa_pattern.
Como ejemplo, el siguiente bloque te responde tu pregunta:

SQL> select c from t;

C
------------------------------
1234
aaa
aaB
C
WWW

SQL> begin
2 for i in (select c from t) loop
3 if (owa_pattern.match(i.c, '[A-Z]+')) then
4 dbms_output.put_line('La cadena ''' || i.c || ''' tiene una letra mayusc.');
5 else
6 dbms_output.put_line('''' || i.c || ''' no tiene una letra mayusc.');
7 end if;
8 end loop;
9 end;
10 /
'1234' no tiene una letra mayusc.
'aaa' no tiene una letra mayusc.
La cadena 'aaB' tiene una letra mayusc.
La cadena 'C' tiene una letra mayusc.
La cadena 'WWW' tiene una letra mayusc.

PL/SQL procedure successfully completed
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:22.