如何在SQL Developer的列值中删除隐藏的双引号

时间:2019-05-02 14:30:32

标签: oracle-sqldeveloper

我表中的某些列值都用双引号引起来,我需要删除这些双引号。问题是,我无法在SQL Developer(版本4.2.0.16.260)中查看双引号符号。但是,当我将数据复制到Notepad ++时,会出现双引号。我尝试使用"Testdata " Testdata 来获取双引号的位置,其返回结果0。另外,我尝试将双引号替换为空白,但并未将其删除。

下面是复制到Notepad ++时看到的数据。显示2条记录。我正在尝试从这两个值中获取不同的值。但是我不能。

[ "$(uname)" = "AIX" ] && ECHO="echo" || ECHO="echo -e"
echo "AA BB CC DD" | while read a b c d; do
[ "`$ECHO $a | cut -c1-2`" = "AA" ] && echo $b
done

2 个答案:

答案 0 :(得分:1)

请试试这个

SELECT REPLACE(TRIM(column_name), CHR(13)||CHR(10))
  FROM table_name;

答案 1 :(得分:0)

数据库表中的列值没有双引号。

从结果网格复制数据时,SQL Developer会将它们添加为复制操作的一部分,以帮助您。 (也许有一种方法可以要求它不要,但我无法立即看到它。)之所以这样做,是因为您得到的第一个值具有尾随换行符。如果可以,我可以复制您看到的内容:

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

如果我以脚本身份运行,则脚本输出窗口将显示:

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

这里换行符丢失了,从那里复制和粘贴不会保留它。如果我以语句形式运行,则查询结果窗口中的数据看起来相同:

Query result window

但是,如果我从网格中复制该数据并将其粘贴(在任何地方,不仅在Notepad ++中),我还会看到:

"Testdata
"
Testdata

...因此保留了换行符,并用双引号将其括起来,因此粘贴到其中的任何内容(我猜这是针对Excel的)都理解它是单个值,包括该换行符。 / p>

  

我正在尝试从这两个值中获取不同的值

问题在于它们实际上并没有区别;一个有换行符,另一个没有。

如果您想忽略它们并将它们视为相同,可以剪掉尾随的换行符:

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