sql >> Base de Datos >  >> RDS >> Oracle

Cómo eliminar las comillas dobles ocultas en los valores de columna de SQL Developer

El valor de la columna en la tabla de la base de datos no tiene comillas dobles.

Cuando copia los datos de la cuadrícula de resultados, SQL Developer los agrega como parte de la operación de copia, para ayudarlo. (Probablemente haya una forma de pedirle que no lo haga, pero no puedo ver una de inmediato). Lo está haciendo porque el primer valor que está obteniendo tiene un carácter de nueva línea final. Puedo duplicar lo que estás viendo si lo hago:

select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual;

Si ejecuto una secuencia de comandos, la ventana de salida de la secuencia de comandos muestra:

'TESTDATA
---------
Testdata
Testdata

Aquí se pierde la nueva línea, y copiar y pegar no la conserva. Si ejecuto como una declaración, los datos en la ventana de resultados de la consulta tienen el mismo aspecto:

pero si copio esos datos de la cuadrícula y los pego (en cualquier lugar, no solo en el Bloc de notas++) también veo:

"Testdata
"
Testdata

... por lo que la nueva línea se conserva y está encerrada entre comillas dobles, de modo que lo que sea que se pegue (supongo que esto está dirigido a Excel) entiende que es un valor único, incluido ese carácter de nueva línea.

El problema es que, de hecho, no son distintos; uno tiene una nueva línea, el otro no.

Si desea ignorar eso y tratarlos como iguales, puede recortar la nueva línea final:

select distinct rtrim(col, chr(10))
from your_table;

Demostración con los mismos datos de muestra:

-- CTE for sample data
with your_table (col) as (
  select 'Testdata' || chr(10) from dual
  union all
  select 'Testdata' from dual
)
select col
from your_table;

COL      
---------
Testdata
Testdata

-- CTE for sample data
with your_table (col) as (
  select 'Testdata' || chr(10) from dual
  union all
  select 'Testdata' from dual
)
select distinct rtrim(col, chr(10)) as col
from your_table;

COL      
---------
Testdata