db2存儲過程修改
⑴ 如何在DB2存儲過程內部實現export、import或者load等導入導出操作
export to c:/a.del of del select * from a這樣可以直接把數據導入到本地目錄;
在存儲過程中可以這樣調用CALL SYSPROC.ADMIN_CMD('export to c:/a.del of del select * from a')只是導出路徑要寫sever端,這樣導出的數據會保存在安裝db2資料庫的電腦上,而不會保存在客戶端上
⑵ 如何給DB2資料庫的存儲過程中 where 的in 條件傳參數
create
or
replace
procere
test(in
in_where
varchar(100))
--創建一個存儲過程test,並可以傳入字元串作為參數
declare
v_sql
varchar(512);
set
v_sql
=
'
delete
from
table1
where
field1
in
('
concat
in_where
concat
')
'
;
--
這里是把傳進來的where語句拼起來
execute
immediate
v_sql;
--這里是把語句進行執行---------類似以上這樣的存儲過程,使用以下的放在進行執行即可:call
test(
'
''001'',''002''
')
;
--內容中的一個『
需要使用
』『
進行轉義
⑶ db2創建存儲過程在begin和end中間有東西就報錯是什麼情況
因為在 Unix 平台下的 DB2 存儲過程對於實例用戶和受防護用戶之間的關系有一個約束,即 DB2 實例用戶必須同時是受防護用戶的主組中的一個用戶。
上述問題的發生就是由於在系統上,實例用戶未加入至受防護用戶的主組中,從而引發了存取許可權不夠的問題所導致的,而並非真的發生了如日誌中所報的磁碟錯誤。解決這一問題的方法很簡單,只要將實例用戶加入該主組即可。
但有時用戶會發現,即使已將用戶加入到指定組,問題仍然存在,這時還應檢查一下實例用戶所加入的組是否是實例用戶所對應的受防護用戶的主組,即檢查一下加入的組是否正確。
要找到實例用戶所應的受防護用戶以及受防護用戶的主組,可用如下方法:
轉入實例用戶 Home 路徑下的 sqllib/adm 路徑。
執行命令:ls -l .fenced,會得到類似如下輸出。
r--r--r-- 1 db2fencj db2fgrp2 0 Jul 30 09:57 .fenced。
輸出中表明,該文件所屬的用戶(db2fencj)即為受防護用戶,所屬的組(db2fgrp2)即為受防護用戶的主組
繼而,用戶便可驗證實例用戶是否被加入到了正確的組中,如果結果正確,便可以解決上述問題。