我有以下代码:
Error: LinkageError occurred while loading main class Bar
java.lang.ClassFormatError: Illegal class modifiers in class Foo: 0x200
此代码与提议的here非常相似,但我循环了25列。 Oracle Apex的问题是PL / SQL允许的最大字符数,因此我无法只编写25个declare
y pls_integer := 0;
v_msg varchar2(4000);
plsql varchar(4000);
begin
if not apex_collection.collection_exists(p_collection_name=>'P16_COLLECTION') then
wwv_flow.debug('No Apex collection found!');
else
for x in (select * from apex_collections where collection_name = 'P16_COLLECTION' and seq_id > 1 order by seq_id)
loop
y := y+1;
FOR i IN 1..25
LOOP
plsql := 'begin apex_collection.update_member_attribute (p_collection_name=> ''P16_COLLECTION'', p_seq=>' || TO_CHAR(x.seq_id) || ',p_attr_number =>' || TO_CHAR(i) || ',p_attr_value=>wwv_flow.g_f' || TO_CHAR(i, 'FM00') || '(' || TO_CHAR(y) || ')); end;';
wwv_flow.debug(plsql);
EXECUTE IMMEDIATE plsql;
END LOOP;
end loop;
end if;
exception when others then
v_msg := ''||sqlerrm;
wwv_flow.debug('ERR: '||v_msg);
end;
- 调用。
但是我没有收到错误update_member_attribute
。
我三重检查了集合no data found
是否存在。
答案 0 :(得分:0)
Oracle Apex的问题是PL / SQL允许的最大字符数
我不确定我是否理解这句话。它是您使用的PL / SQL。您将本地PLSQL变量声明为VARCHAR2(4000)。你为什么不指定它的最大允许尺寸32767?那会有帮助吗?
此外,说你没有找到NO-DATA-FOUND异常:你肯定这段代码引出了它吗?因为,那里没有SELECT语句...你在游标FOR循环中使用的语句不能引发NO-DATA-FOUND;更新。因此,我认为它必须是别的东西。
启用DEBUG,运行页面, - 当出现错误时 - 查看调试结果并查找罪魁祸首。