我是PLSQL新手(約一週),我有一個具有數百個屬性的對象,我需要檢查最重要的對象屬性,並將其添加到clob中。PLSQL迭代對象屬性
有可能在對象上進行迭代屬性,如
for i in object loop
object.i
end loop;
的感謝!
我是PLSQL新手(約一週),我有一個具有數百個屬性的對象,我需要檢查最重要的對象屬性,並將其添加到clob中。PLSQL迭代對象屬性
有可能在對象上進行迭代屬性,如
for i in object loop
object.i
end loop;
的感謝!
使用標準的PL/SQL構造,你不能。您可以使用
for i in mycol.FIRST .. mycol.LAST loop
變量i不是索引,而是迭代集合的一個元素。
如果您的對象是Oracle TYPE,則可以查詢系統視圖ALL_TYPE_ATTRS。該視圖是數據庫目錄的一部分。您可以在Oracle Reference中找到它的描述(不是Oracle SQL Reference!)。如果您可以動態訪問屬性名稱,我不確定是否會列出屬性名稱。
最簡單的方法是編寫一組幫助程序,它將根據其類型檢查屬性並管理其值,然後簡單地調用此過程。
declare
procedure Manage_Char_Attr(value IN VARCHAR2, pclob CLOB) IS
BEGIN
if value is null then
...
END;
procedure Manage_Number_Attr(value IN NUMBER, pclob CLOB) IS
...
procedure Manage_Date_Attr(value IN DATE, pclob CLOB) IS
...
CLOB myclob
begin
-- initialize your CLOB
...
-- manage attributes
Manage_Char_Attr(attr1, myclob); -- let attr1 is a string
Manage_Char_Attr(attr2, myclob); -- let attr2 is a string
Manage_Numvber_Attr(attr3, myclob); -- let attr3 is a number
Manage_Date_Attr(attr4, myclob); -- let attr4 is a date
...
end;
是的,請查看文檔here。