将数据从另一个现有表中插入到对象类型表中.Oracle 11g

时间:2018-06-18 11:25:11

标签: oracle11g object-type

我正在尝试将数据从存储过程中的另一个现有表插入到对象类型表中。 我创建了"对象"类型和它的类型"表"如下例所示。

CREATE OR REPLACE TYPE EXAMPLE AS OBJECT
(
ALL THE COLUMNS,
);
/
CREATE OR REPLACE TYPE EXAMPLE_TABLE AS TABLE OF EXAMPLE;

尝试使用此类型表来从另一个表中插入数据。

---
BEGIN
INSERT INTO EXAMPLE_TABLE (ALL THE COLUMS FROM EXAMPLE) 
VALUES (SELECT * FROM EMP_TABLE);
这可能吗?让我知道,或者我应该使用" CURSOR"逐个插入.. 请以语法

的形式告诉我如何实现这一目标

- 提前谢谢

1 个答案:

答案 0 :(得分:0)

示例表是一种类型,因此您不能在其中插入任何内容,首先需要定义一个变量,该变量将作为example_table的实例。然后,您可以使用批量收集来实际填充表格。

declare
  example_tab_inst EXAMPLE_TABLE;
begin
  select 
   EXAMPLE(e.col1,e.col2,e.col3) 
  bulk collect into example_tab_inst 
  from emp_table e;
 .
 .
 .