私はPLSQL(約1週間)で新しく、何百もの属性を持つオブジェクトを持っています。PLSQLオブジェクト属性を反復する
オブジェクトに反復することが可能であるが
for i in object loop
object.i
end loop;
感謝などの属性!
私はPLSQL(約1週間)で新しく、何百もの属性を持つオブジェクトを持っています。PLSQLオブジェクト属性を反復する
オブジェクトに反復することが可能であるが
for i in object loop
object.i
end loop;
感謝などの属性!
標準のPL/SQL構文を使用することはできません。
for i in mycol.FIRST .. mycol.LAST loop
変数iはインデックスではなく、反復されたコレクションの1つの要素です。
オブジェクトがOracle TYPEの場合は、システム・ビューALL_TYPE_ATTRSを問い合せることができます。このビューはデータベースカタログの一部です。 Oracleのリファレンス(「Oracle SQLリファレンス」ではありません)にその説明があります。あなたが動的な方法でそれにアクセスすることができれば、私は確信していません、属性名のリストを取得します。
最も簡単な方法は、属性をその型に従ってチェックし、その値を管理してからこのプロシージャを呼び出すヘルパープロシージャのセットを書くことです。
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をご覧ください。