如何从Oracle中的CLOB中删除空间?

时间:2013-05-10 02:46:47

标签: sql oracle

我在从Oracle中的CLOB列中删除空间时遇到问题。我试图在SQL中使用CLOB格式和修剪,但空间仍然存在。我的字段是使用字符串文本。我不希望文字中有空格。任何人都知道如何解决这个问题?

这是我的SQL:

select distinct
  UPPER(ks.NAMA) BPMNAMA,
  trim(upper(nvl(DBMS_LOB.SUBSTR(ks.sekatan, 4000, 1),'TIADA'))) sekatnama,
  UPPER(ks.NAMA) DAERAHNAMA,
  UPPER(ks.nama) gunatanah
from
  guna_tanah ks

例如:

sekatnama

TANAH INI TIDAK BOLEH DI PINDAHMILIK,DISEWA ATAU DIPAJAK

KECUALI DENGAN KEBENARAN PIHAK BERKUASA NEGERI。塞卡坦

KEPENTINGAN INI DIKECUALIKAN KEPADA PEMBELI PERTAMA。

如果我修剪了这个空间,怎么去除空间呢?

1 个答案:

答案 0 :(得分:1)

使用regexp_replace(ks.sekatan, '[[:space:]]',null)

请参阅此链接:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements001.htm

... ...但是,不支持以下语句,因为DBMS_LOB.SUBSTR返回LOB:

CREATE TABLE选项卡AS SELECT DBMS_LOB.SUBSTR(clob_col)来自tab @ dbs2;

...

您不能在查询的ORDER BY子句中,或在查询的GROUP BY子句中或在聚合函数中指定LOB列。

您无法在SELECT ... DISTINCT或SELECT ... UNIQUE语句或连接中指定LOB列。但是,如果列的对象类型上定义了MAP或ORDER函数,则可以在SELECT ... DISTINCT语句或使用UNION或MINUS集合运算符的查询中指定对象类型列的LOB属性。 .. (希望这些有帮助)..谢谢