您如何将数据传输到对象表?
假设你有一张桌子:
create table thisTable(
column1 varchar2(20),
column2 varchar2(20),
column3 varchar2(20)
)
/
你有一个新的对象表:
create table oo_thisTable(
object1 object1_t
)
/
create type object1_t as object (
column1 varchar2(20),
column2 varchar2(20),
column3 varchar2(20)
)
/
如何将数据从thisTable传输到oo_thisTable?
declare
cursor c1 is
select * from thisTable;
begin
open c1;
loop
fetch c1 into column1, column2, column3;
exit when c1%notfound;
...
答案 0 :(得分:3)
无需使用 PL / SQL ,您可以在纯 SQL 中执行此操作。
INSERT INTO oo_thistable SELECT object1_t(column1, column2, column3) FROM thistable;
<强>演示强>
创建所需的类型和表格:
SQL> create table thisTable(
2 column1 varchar2(20),
3 column2 varchar2(20),
4 column3 varchar2(20)
5 )
6 /
Table created.
SQL> create type object1_t as object (
2 column1 varchar2(20),
3 column2 varchar2(20),
4 column3 varchar2(20)
5 )
6 /
Type created.
SQL> create table oo_thisTable(
2 object1 object1_t
3 )
4 /
Table created.
在thistable
中插入几行:
SQL> INSERT INTO thistable VALUES('a','b','c');
1 row created.
SQL> INSERT INTO thistable VALUES('d','e','f');
1 row created.
SQL> INSERT INTO thistable VALUES('g','h','i');
1 row created.
现在我们要插入 thistable
中的所有行到oo_thistable
:
SQL> INSERT INTO oo_thistable SELECT object1_t(column1, column2, column3) FROM thistable;
3 rows created.
<强>验证强>:
SQL> SELECT * FROM oo_thistable;
OBJECT1(COLUMN1, COLUMN2, COLUMN3)
--------------------------------------------------------------------------------
OBJECT1_T('a', 'b', 'c')
OBJECT1_T('d', 'e', 'f')
OBJECT1_T('g', 'h', 'i')
您已插入所有行。
答案 1 :(得分:2)
INSERT INTO oo_thisTable (object1) SELECT object1_t(column1, column2, column3) FROM thisTable;
为了更好的可读性,您可以使用关键字NEW
明确显示您调用类型构造函数而不仅仅是某些函数。
INSERT INTO oo_thisTable (object1) SELECT new object1_t(column1, column2, column3) FROM thisTable;
答案 2 :(得分:2)
我已经针对所描述的问题编写了一些顺序步骤。请尝试这个,如果有帮助请告诉我。
math.log(2.0)