我想将NVARCHAR2类型的所有列更新为我的数据库中的一些随机字符串。我遍历nvarchar2类型的数据库中的所有列,并为每列执行更新语句。Oracle:使用动态查询更新多个列
for i in (
select
table_name,
column_name
from
user_tab_columns
where
data_type = 'NVARCHAR2'
) loop
execute immediate
'update ' || i.table_name || 'set ' || i.column_name ||
' = DBMS_RANDOM.STRING(''X'', length('|| i.column_name ||'))
where ' || i.column_name || ' is not null';
相反运行的更新语句类型NVARCHAR2的每一列的,我想与效率的一个更新语句更新特定表的所有nvarchar列(即每1台一个update语句) 。为此,我尝试将表中的所有nvarchar列批量收集到临时存储中。但是,我坚持写这个动态更新语句。你能帮我解决这个问题吗?提前致谢!
具有特定表的所有列的内部循环,并追加列进行更新。这是你必须反复运行还是一次运行?如果有一次,只需编写一个脚本来发出更新的另一个脚本,然后运行第二个脚本。 – OldProgrammer
将列添加到'SET'是我卡住的地方。在集合中写入选择是不可能的。你有什么想法如何追加? – rav
用字符串创建更新,附加到该字符串,然后立即对字符串执行。 – OldProgrammer