2

我希望使用 SQL Developer 更新我的数据库数据

UPDATE TABLE_NAME SET COLUMN_NAME = LTRIM(RTRIM(COLUMN_NAME))

但即使显示“行已更新”的消息也没有任何效果。每个字符串后面仍然存在前导和尾随空格。

有任何想法吗?

4

5 回答 5

11

更新后提交吗?

update tableName set col1 = trim(col1);
commit;
于 2013-07-22T06:44:03.783 回答
3

我在两张不同的桌子上遇到了同样的问题。一个第一个桌子装饰还可以,第二个没有效果,空间仍然存在!

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

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

于 2014-01-06T15:50:18.987 回答
2

尝试这个

UPDATE TABLE_NAME SET COLUMN_NAME = TRIM(COLUMN_NAME);

修剪参考

于 2013-07-22T06:23:26.397 回答
1

你试过REGEXP_REPLACE(your column name, '\s*', '')吗?

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

于 2013-07-22T06:30:48.327 回答
0

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

要将更新限制为仅更新将产生影响的行,请使用:

UPDATE TABLE_NAME
SET    COLUMN_NAME = LTRIM(RTRIM(COLUMN_NAME))
WHERE  COLUMN_NAME != LTRIM(RTRIM(COLUMN_NAME));
于 2013-07-22T07:20:03.217 回答