Saltar al contenido

Oracle PL/SQL: elimine los “caracteres de espacio” de un string

Te damos la bienvenida a nuestra página web, en este lugar vas a hallar la solucíon de lo que buscabas.

Solución:

Iría por regexp_replace, aunque no estoy 100% seguro de que esto se pueda usar en PL/SQL

my_value := regexp_replace(my_value, '[[:space:]]*',''); 

Versión más corta de:

REGEXP_REPLACE( my_value, '[[:space:]]', '' )

Sería:

REGEXP_REPLACE( my_value, 's')

Ninguna de las declaraciones anteriores eliminará “null” caracteres.

Para eliminar “nulos”, encierre la declaración con un reemplazo

Al igual que:

REPLACE(REGEXP_REPLACE( my_value, 's'), CHR(0))

Como se siente cómodo con las expresiones regulares, probablemente quiera usar la función REGEXP_REPLACE. Si desea eliminar cualquier cosa que coincida con el [:space:] clase POSIX

REGEXP_REPLACE( my_value, '[[:space:]]', '' )


SQL> ed
Wrote file afiedt.buf

  1  select '|' ||
  2         regexp_replace( 'foo ' || chr(9), '[[:space:]]', '' ) ||
  3         '|'
  4*   from dual
SQL> /

'|'||
-----
|foo|

Si desea dejar un espacio en su lugar para cada conjunto de caracteres de espacio continuo, simplemente agregue el + a la expresión regular y use un espacio como carácter de reemplazo.

with x as (
  select 'abc 123  234     5' str
    from dual
)
select regexp_replace( str, '[[:space:]]+', ' ' )
  from x

valoraciones y reseñas

Si crees que ha sido de provecho este post, nos gustaría que lo compartas con otros desarrolladores y nos ayudes a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *