Oracle Update Column LTRIM和RTRIM

时间:2013-07-22 05:39:41

标签: sql oracle

我希望使用

在SQL Developer中更新我的数据库数据
UPDATE TABLE_NAME SET COLUMN_NAME = LTRIM(RTRIM(COLUMN_NAME))

但即使显示“行更新”的消息,也不会产生任何影响。每个字符串后面仍然存在前导和尾随空格。

有什么想法吗?

5 个答案:

答案 0 :(得分:6)

您是否在更新后提交?

update tableName set col1 = trim(col1);
commit;

答案 1 :(得分:3)

试试这个

UPDATE TABLE_NAME SET COLUMN_NAME = TRIM(COLUMN_NAME);

Trim Reference

答案 2 :(得分:3)

我在两个不同的表上遇到了同样的问题。一个第一个桌子装饰是好的,第二个没有效果,空间仍在那里!

不同之处在于我在第一个表中使用varchar2(30)而在第二个表中(修剪不起作用)我有char(30)

将第二个表从char(30)修改为varchar2(30)后,修剪按预期工作。

答案 3 :(得分:1)

您是否尝试过REGEXP_REPLACE(your column name, '\s*', '')

ex:UPDATE TABLE_NAME SET COLUMN_NAME = REGEXP_REPLACE(COLUMN_NAME, '\s*', '')

答案 4 :(得分:0)

您收到一条消息,指出n行已更新,因为您的表中有n行,并且您正在将更新应用于所有行。

要将更新限制为只有更新才会生效的行,请使用:

UPDATE TABLE_NAME
SET    COLUMN_NAME = LTRIM(RTRIM(COLUMN_NAME))
WHERE  COLUMN_NAME != LTRIM(RTRIM(COLUMN_NAME));