在以下代码示例中,
Type single_table_purge_type is varray(2) of varchar2(255);
Type single_table_list is table of single_table_purge_type;
purge_table single_table_list;
purge_table := new single_table_list(
new single_table_purge_type('product','Where product_id=5'),
new single_table_purge_type('customer','Where customer_id=10')
);
For x in 1..purge_table.Count
Loop
For y in 1..purge_table(x).Count
Loop
DBMS_OUTPUT.put_line( 'x='||x||' y='||y||' cell='||purge_table(x)(y));
End loop;
End loop;
DBMS_OUTPUT.put_line( 'm1 ' || purge_table(1)(1));
DBMS_OUTPUT.put_line( 'm2 ' || purge_table(1)(2));
DBMS_OUTPUT.put_line( 'm3 ' || purge_table(2)(1));
DBMS_OUTPUT.put_line( 'm4 ' || purge_table(2)(2));
我如何才能找到(1,2)或(2,2)项? (即where子句)。 当我打印出值时,我看到的只是第一项的副本。
输出
m1 product
m2 product
m3 customer
m4 customer
答案 0 :(得分:1)
如图所示运行代码(添加declare
,begin
和end
),我在Oracle 10g上获得以下内容:
x=1 y=1 cell=product
x=1 y=2 cell=Where product_id=5
x=2 y=1 cell=customer
x=2 y=2 cell=Where customer_id=10
m1 product
m2 Where product_id=5
m3 customer
m4 Where customer_id=10
这让我相信你组装你向我们展示的作品的方式有问题。请编辑您的问题以完全按照您的运行方式提供脚本。
(这应该是一个评论,但它需要长度和格式不适合那里。)