डेटाबेस तालिका में स्तंभ मान में दोहरे उद्धरण चिह्न नहीं हैं।
जब आप परिणाम ग्रिड से डेटा कॉपी करते हैं, तो SQL डेवलपर आपकी मदद करने के लिए उन्हें कॉपी ऑपरेशन के हिस्से के रूप में जोड़ रहा है। (शायद इसे न करने के लिए कहने का एक तरीका है, लेकिन मैं तुरंत एक नहीं देख सकता।) यह ऐसा इसलिए कर रहा है क्योंकि आपको जो पहला मान मिल रहा है, उसमें एक नया लाइन कैरेक्टर है। अगर मैं ऐसा करता हूं तो आप जो देख रहे हैं उसकी नकल कर सकता हूं:
select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual;
अगर मैं एक स्क्रिप्ट के रूप में चलता हूं, तो स्क्रिप्ट आउटपुट विंडो दिखाता है:
'TESTDATA
---------
Testdata
Testdata
यहां नई लाइन खो गई है, और इससे कॉपी और पेस्ट करने से यह संरक्षित नहीं होता है। यदि मैं एक कथन के रूप में चलाता हूं तो क्वेरी परिणाम विंडो में डेटा समान दिखता है:
लेकिन अगर मैं उस डेटा को ग्रिड से कॉपी करता हूं और उसे पेस्ट करता हूं (कहीं भी, नोटपैड ++ में नहीं) तो मुझे यह भी दिखाई देता है:
"Testdata
"
Testdata
... इसलिए न्यूलाइन संरक्षित है, और डबल-कोट्स में संलग्न है, इसलिए इसे जो कुछ भी चिपकाया जाता है (मुझे लगता है कि यह एक्सेल पर लक्षित है) समझता है कि यह एक ही मान है, जिसमें न्यूलाइन कैरेक्टर भी शामिल है।
समस्या यह है कि वे वास्तव में अलग नहीं हैं; एक के पास एक नई लाइन है, दूसरी के पास नहीं है।
यदि आप इसे अनदेखा करना चाहते हैं और उनके साथ वैसा ही व्यवहार करना चाहते हैं, तो आप पिछली नई पंक्ति को काट सकते हैं:
select distinct rtrim(col, chr(10))
from your_table;
समान नमूना डेटा वाला डेमो:
-- 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