我想將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