Oracle
 sql >> Database >  >> RDS >> Oracle

Come rimuovere le virgolette doppie nascoste nei valori delle colonne di SQL Developer

Il valore della colonna nella tabella del database non ha virgolette.

Quando copi i dati dalla griglia dei risultati, SQL Developer li aggiunge come parte dell'operazione di copia, per aiutarti. (Probabilmente c'è un modo per chiedergli di non farlo, ma non riesco a vederne immediatamente uno.) Lo sta facendo perché il primo valore che stai ricevendo ha un carattere di nuova riga finale. Posso duplicare quello che vedi se lo faccio:

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

Se eseguo come script, la finestra di output dello script mostra:

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

Qui la nuova riga è persa e copia e incolla da quella non la preserva. Se eseguo come istruzione, i dati nella finestra dei risultati della query hanno lo stesso aspetto:

ma se copio quei dati dalla griglia e li incollo (ovunque, non solo in Notepad ++) vedo anche:

"Testdata
"
Testdata

... quindi la nuova riga viene preservata ed è racchiusa tra virgolette, quindi qualunque cosa sia incollata (suppongo che sia mirata a Excel) capisca che si tratta di un singolo valore, incluso quel carattere di nuova riga.

Il problema è che non sono, infatti, distinti; uno ha una nuova riga, l'altro no.

Se vuoi ignorarlo e trattarli allo stesso modo, puoi tagliare la nuova riga finale:

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

Demo con gli stessi dati di esempio:

-- 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