Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como remover aspas duplas ocultas nos valores da coluna do SQL Developer


O valor da coluna na tabela do banco de dados não possui aspas duplas.

Quando você copia os dados da grade de resultados, o SQL Developer os adiciona como parte da operação de cópia, para ajudá-lo. (Provavelmente há uma maneira de pedir que não, mas não consigo ver uma imediatamente.) Ele está fazendo isso porque o primeiro valor que você está obtendo tem um caractere de nova linha à direita. Posso duplicar o que você está vendo se eu fizer:
select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual;

Se eu executar como um script, a janela de saída do script mostra:
'TESTDATA
---------
Testdata
Testdata

Aqui a nova linha é perdida e copiar e colar não a preserva. Se eu executar como uma instrução, os dados na janela de resultado da consulta terão a mesma aparência:



mas se eu copiar esses dados da grade e colá-los (em qualquer lugar, não apenas no Notepad ++), também vejo:
"Testdata
"
Testdata

... para que a nova linha seja preservada e entre aspas duplas para que seja colado em (suponho que isso seja direcionado ao Excel) entenda que é um valor único, incluindo esse caractere de nova linha.

O problema é que eles não são, de fato, distintos; um tem uma nova linha, o outro não.

Se você quiser ignorar isso e tratá-los da mesma forma, poderá cortar a nova linha à direita:
select distinct rtrim(col, chr(10))
from your_table;

Demonstração com os mesmos dados de amostra:
-- 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