我是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。