De kolomwaarde in de databasetabel heeft geen dubbele aanhalingstekens.
Wanneer u de gegevens uit het resultatenraster kopieert, voegt SQL Developer ze toe als onderdeel van de kopieerbewerking om u te helpen. (Er is waarschijnlijk een manier om het niet te vragen, maar ik kan er niet meteen een zien.) Het doet dat omdat de eerste waarde die je krijgt een volgend teken van een nieuwe regel heeft. Ik kan dupliceren wat je ziet als ik dat doe:
select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual;
Als ik het als een script uitvoer, toont het scriptuitvoervenster:
'TESTDATA
---------
Testdata
Testdata
Hier gaat de nieuwe regel verloren, en kopiëren en plakken van daaruit behoudt het niet. Als ik als een instructie uitvoer, zien de gegevens in het venster met queryresultaten er hetzelfde uit:
maar als ik die gegevens uit het raster kopieer en plak (waar dan ook, niet alleen in Kladblok++), zie ik ook:
"Testdata
"
Testdata
... dus de nieuwe regel blijft behouden en staat tussen dubbele aanhalingstekens, dus waar het ook in wordt geplakt (ik vermoed dat dit op Excel is gericht) begrijpt dat het een enkele waarde is, inclusief dat teken van de nieuwe regel.
Het probleem is dat ze in feite niet te onderscheiden zijn; de ene heeft een nieuwe regel, de andere niet.
Als je dat wilt negeren en ze als hetzelfde wilt behandelen, kun je de achterste nieuwe regel afsnijden:
select distinct rtrim(col, chr(10))
from your_table;
Demo met dezelfde voorbeeldgegevens:
-- 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