我希望使用
在SQL Developer中更新我的数据库数据UPDATE TABLE_NAME SET COLUMN_NAME = LTRIM(RTRIM(COLUMN_NAME))
但即使显示“行更新”的消息,也不会产生任何影响。每个字符串后面仍然存在前导和尾随空格。
有什么想法吗?
答案 0 :(得分:6)
您是否在更新后提交?
update tableName set col1 = trim(col1);
commit;
答案 1 :(得分:3)
答案 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));