pl / sql二维数组 - 无法进入第2项

时间:2011-11-07 19:17:38

标签: sql oracle plsql oracle10g

在以下代码示例中,

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

1 个答案:

答案 0 :(得分:1)

如图所示运行代码(添加declarebeginend),我在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

这让我相信你组装你向我们展示的作品的方式有问题。请编辑您的问题以完全按照您的运行方式提供脚本。

(这应该是一个评论,但它需要长度和格式不适合那里。)