使用另一个普通(2NF)表的行创建(NonFirst Normal Form)对象表

时间:2012-11-14 14:36:51

标签: plsql

挑战:

来自名为CARS_TABLE有两列,ID和模型中包含的信息的一个表:
1法拉利
2号奥迪
3野马
创建另一表之后(在的情况下下,称为CARS_OBJECTS_TABLE)仅具有
只有一列,其是一个对象类型的我\'已经用下面的代码完成...
/
CREATE TYPE CAR_OBJECT为研究对象
(ID号码,
模型VARCHAR2(30))
/
CREATE TABLE Cars_Object_Table(
Car_Column CAR_OBJECT)

- 现在的挑战是让两列,ID和型号, 第一表CARS_TABLE的
,到对象列Car_column 第二表CARS_OBJECT_TABLE的


到目前为止,我想出了下面的,不产生错误,
但不填充该第二表的对象列任一。

CREATE TYPE CAR2车底(
的ID号,
模型VARCHAR2(30),
DECLARE
Car_Object CAR2;
光标IMPORTDATA是SELECT * FROM cars_table;
BEGIN
开放IMPORTDATA;

取IMPORTDATA成CAR2(IDS,模型)
如果 IMPORTDATA%发现 然后

插入Cars_Object_Table
值CAR2(IDS,模型);
其他
退出;
如果;
端环;
接近IMPORTDATA;
END;
/

任何想法?


1 个答案:

答案 0 :(得分:1)

您可以使用insert .. select语句在SQL中执行此操作。但是,您必须首先将car_table数据选择到car_objects然后插入。

insert into cars_object_table
select car_object(id, model) from cars_table;