【发布时间】:2013-05-23 06:08:16
【问题描述】:
首先我创建了一个类型和一个表类型。
CREATE OR REPLACE TYPE LAB_LOADING_OBJECT_T
AS
object
(
STUDYID VARCHAR2(300),
USUBJID VARCHAR2(300),
..... /*So many columns, so I hide them*/
);
/
CREATE OR REPLACE TYPE LAB_LOADING_TABLE_T
AS
TABLE OF LAB_LOADING_OBJECT_T;
然后我创建一个表,列与上面提到的 LAB_LOADING_OBJECT_T 相同:
CREATE TABLE TMP_EFC11319_LAB_LOADING_T
(
STUDYID VARCHAR2(300),
USUBJID VARCHAR2(300),
..... /*So many columns, so I hide them*/
);
最后,我尝试在名为 TMP_EFC113_LAB_LOADING_T 的表中选择值:
SELECT *
BULK COLLECT INTO TMP_EFC11319_LAB_LOADING_T
FROM EFC113$STABLE.LBLL ;
LBLL 的列与表 TMP_EFC113_LAB_LOADING_T 相同。但是我遇到了一个错误信息:
------------- ORA-03001: 未实现的功能 03001. 00000 - “未实现的功能” *原因:此功能未实现。 *行动:无。 行错误:2 列:1 --------------我不知道是什么导致了错误。
【问题讨论】:
-
尝试改用
SELECT LAB_LOADING_OBJECT_T(STUDYID,...)并减少成员进行测试。 -
EFC113$STABLE 是表还是模式(用户)? LBLL 是表还是列?如果是列,它的数据类型是什么?
-
@BobJarvis EFC113$STABLE.LBLL 是一个视图,其结构与我创建的类型相同。
-
@Toru 我试过你的方法,但还是失败了。我不确定错误在哪里。所以现在,我想我必须使用 CREATE TABLE XXX AS (SELECT * FROM ...)
-
哪个数据库版本?我将从一个 非常 简单的示例开始,看看它是否有效。