QP模块修改量设置中的限定词,对应了不同的值集,以下代码显示了,如何通过值集,得到值集所存储的值(适用于表验证值集,独立值集,其他值集未试用):
declare
cursor ddd is
select ffvt.id_column_name,
ffvt.meaning_column_name,
decode(ffvt.value_column_name,
ffvt.id_column_name,
'NULL',
ffvt.value_column_name) value_column_name,
ffvt.application_table_name,
ffvt.additional_where_clause
from FND_FLEX_VALIDATION_TABLES ffvt
where FFVT.flex_value_set_id = 1015180;
plsql_block VARCHAR2(5000);
a varchar2(2000);
c varchar2(2000);
b varchar2(2000);
begin
for rec in ddd loop
plsql_block := 'select * from (select ' || rec.value_column_name || ',' ||
rec.id_column_name || ',' || rec.meaning_column_name ||
' from ' || rec.application_table_name || ' ' ||
substr(rec.additional_where_clause, 1, 4000) ||
') where ' || substr(rec.id_column_name,instr(rec.id_column_name,'.')+1) || ' = :1';
EXECUTE IMMEDIATE plsql_block
into a, b, c
using 1001;
dbms_output.put_line(plsql_block);
dbms_output.put_line(a);
dbms_output.put_line(b);
dbms_output.put_line(c);
end loop;
end;