据我所知,没有 SQL 语法可以为您提供快速简便的方法。
一种方法是编写一个 PL/SQL 块以从系统视图中选择给定表的列名,例如 user_tab_cols 并将它们写入变量以构建 SQL 代码以动态运行。老实说,除非您有许多表来执行此操作或加载大量列,否则手动编写查询可能会更容易。
编辑 - 这是你想要的代码
declare
v_table varchar2(50) := 'test_table';
v_sql varchar2(2000) := null;
cursor c_cols(p_table varchar2) is
select c.column_name as col
from user_tab_cols c
where c.table_name = upper(p_table)
order by c.column_id;
begin
-- write first line of sql...
v_sql := 'update ' || v_table || ' set' || chr(10);
-- loop through col names to add each col into update statement...
for l_c_cols in c_cols(v_table) loop
v_sql := v_sql || l_c_cols.col || ' = trim(' || l_c_cols.col || '),' || chr(10);
end loop;
-- remove last comma...
v_sql := substr(v_sql,1,length(v_sql)-2);
-- run dynamic sql...
dbms_output.put_line(v_sql);
begin
execute immediate v_sql;
commit;
end;
end;
如果您对此有任何疑问,请告诉我。