我希望使用 SQL Developer 更新我的数据库数据
UPDATE TABLE_NAME SET COLUMN_NAME = LTRIM(RTRIM(COLUMN_NAME))
但即使显示“行已更新”的消息也没有任何效果。每个字符串后面仍然存在前导和尾随空格。
有任何想法吗?
更新后提交吗?
update tableName set col1 = trim(col1);
commit;
我在两张不同的桌子上遇到了同样的问题。一个第一个桌子装饰还可以,第二个没有效果,空间仍然存在!
不同之处在于,在我使用的第一个表varchar2(30)
和第二个表中(修剪不起作用)我有char(30)
将第二个表从修改char(30)
为varchar2(30)
trim 后按预期工作。
你试过REGEXP_REPLACE(your column name, '\s*', '')
吗?
前任: UPDATE TABLE_NAME SET COLUMN_NAME = REGEXP_REPLACE(COLUMN_NAME, '\s*', '')
您会收到一条消息说 n 行已更新,因为您的表中有 n 行,并且您正在将更新应用于所有行。
要将更新限制为仅更新将产生影响的行,请使用:
UPDATE TABLE_NAME
SET COLUMN_NAME = LTRIM(RTRIM(COLUMN_NAME))
WHERE COLUMN_NAME != LTRIM(RTRIM(COLUMN_NAME));