Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle嵌套表和列名_Oracle_Plsql_Oracle10g - Fatal编程技术网

Oracle嵌套表和列名

Oracle嵌套表和列名,oracle,plsql,oracle10g,Oracle,Plsql,Oracle10g,我想在Oracle10g中执行以下操作(这是一个精心设计的示例,用于展示概念,而不是真实的代码) 将使用包含(1,2)的数组调用存储过程,我们希望得到3 所以,问题是,是否有必要指定一个列名称,其中包含???当使用嵌套表作为表时,是否可以使用上面的select语句 您要查找的关键字是列\u值。根据您的设置: SQL> CREATE OR REPLACE TYPE NUMBER_ARRAY_T is TABLE of NUMBER; 2 / Type created SQL>

我想在Oracle10g中执行以下操作(这是一个精心设计的示例,用于展示概念,而不是真实的代码)

将使用包含(1,2)的数组调用存储过程,我们希望得到3


所以,问题是,是否有必要指定一个列名称,其中包含???当使用嵌套表作为表时,是否可以使用上面的select语句

您要查找的关键字是
列\u值
。根据您的设置:

SQL> CREATE OR REPLACE TYPE NUMBER_ARRAY_T is TABLE of NUMBER;
  2  /

Type created
SQL> CREATE OR REPLACE PROCEDURE validate_order_ids(i_orders IN number_array_t,
  2                                                 o_output OUT SYS_REFCURSOR)
  3  IS BEGIN
  4      OPEN o_output FOR
  5          SELECT COLUMN_VALUE
  6            FROM TABLE(i_orders)
  7           WHERE COLUMN_VALUE NOT IN (SELECT order_id FROM orders);
  8  END validate_order_ids;
  9  /

Procedure created
要调用该过程,您只需执行以下操作:

SQL> VARIABLE x REFCURSOR
SQL> exec validate_order_ids(number_array_t(1,5), :x);

ProcÚdure PL/SQL terminÚe avec succÞs.

SQL> print x

COLUMN_VALUE
------------
           5

完美的谢谢-我现在在using collections文档中看到了这一点,但它并没有突出显示,所以我读了一遍-谢谢您的帮助。
SQL> VARIABLE x REFCURSOR
SQL> exec validate_order_ids(number_array_t(1,5), :x);

ProcÚdure PL/SQL terminÚe avec succÞs.

SQL> print x

COLUMN_VALUE
------------
           5