1

我在从 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

例如:

关卡

TANAH INI TIDAK BOLEH DI PINDAHMILIK, DISEWA ATAU DIPAJAK

KECUALI DENGAN KEBENARAN PIHAK BERKUASA NEGERI。塞卡坦

KEPENTINGAN INI DIKECUALIKAN KEPADA PEMBELI PERTAMA。

即使我放了修剪,如何删除空间?

4

1 回答 1

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 tab AS SELECT DBMS_LOB.SUBSTR(clob_col) from tab@dbs2;

...

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

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

于 2013-05-10T04:03:50.580 回答