2012-10-03 44 views

Respuesta

5

Para encontrar un valor que contiene caracteres no imprimibles, como retorno de carro o tabulación vertical o al final de la línea puede usar la función regexp_like. En su caso, para mostrar filas donde un valor de cadena de una columna particular contiene retorno de carro al final, se puede usar una consulta similar.

select * 
    from your_table_name 
where regexp_like(trim(string_column), '[[:space:]]$') 

Demo


respuesta a los comentarios

Trim función, de forma predeterminada, elimina espacios iniciales y finales y no va a eliminar retorno de carro o final de la línea caracteres. Vamos a llevar a cabo una prueba sencilla:

SQL> create table Test_Table(
    2 id number, 
    3 col1 varchar2(101) 
    4 ); 

Table created 

SQL> insert into Test_Table (id, col1) 
    2 values(1, 'Simple string'); 

1 row inserted 

SQL> commit; 

Commit complete 

SQL> insert into Test_Table (id, col1) 
    2 values(1, 'Simple string with carriage return at the end' || chr(13)); 

1 row inserted 

SQL> commit; 

Commit complete 

SQL> insert into Test_Table (id, col1) 
    2 values(1, ' Simple string with carriage return at the end leading and trailing spaces' || chr(13)||' '); 

1 row inserted 

SQL> commit; 

Commit complete 

SQL> insert into Test_Table (id, col1) 
    2 values(1, ' Simple string leading and trailing spaces '); 

1 row inserted 

SQL> commit; 

Commit complete 

SQL> select * 
    2 from test_table; 

     ID COL1 
-------------------------------------------------------------------------------- 
     1 Simple string 
     1 Simple string with carriage return at the end 
     1 Simple string with carriage return at the end leading and trailing spaces 
     1 Simple string leading and trailing spaces 

SQL> 
SQL> select * 
    2 from test_table 
    3 where regexp_like(trim(col1), '[[:space:]]$') 
    4 ; 

     ID COL1 
---------------------------------------------------------------------------------- 
     1 Simple string with carriage return at the end 
     1 Simple string with carriage return at the end leading and trailing spaces 

SQL> 
+0

¿Qué parte de '[[: space:]] $' está realmente comprobando el retorno del carro? ¿Es '$'? – raffian

+0

'[[: espacio:]]' - buscando retorno de carro (y otros caracteres no imprimibles mencionados en la respuesta). '$' - busca coincidencias al final de la cadena. –

+0

Intenté esto, pero está recogiendo columnas con espacios al final, omitiendo definitivamente aquellas con retornos de carro ... ¡Por cierto, +1 para SQLFiddle! – raffian

10

Trate

SELECT name from myTable where name like '%'||chr(10) or name like '%'||chr(13) 
+1

Los números correctos a utilizar dependerá del conjunto de caracteres base de datos para [var] char [2] tipos y el carácter nacional de bases de datos establecidas para n [var] char [2] tipos. (Comentada sobre la posibilidad de que cualquiera que use EBCDIC se encuentre con esta respuesta.) –

Cuestiones relacionadas