【发布时间】:2015-05-02 20:35:30
【问题描述】:
长话短说,我想做的是将一些数据插入表中,但我在理解问题所在时遇到了一些问题。我会让代码自己说话。希望你能帮助我。提前致谢!
CREATE OR REPLACE TYPE Departament IS OBJECT (
deptno NUMBER(2),
dname CHAR(14)
);
/
CREATE OR REPLACE TYPE Employee IS OBJECT (
empno NUMBER(4),
ename CHAR(10),
dept REF Departament,
sal NUMBER(7,2)
) NOT FINAL;
/
CREATE OR REPLACE TYPE Manager UNDER Employee (
nrEmp NUMBER(2)
);
/
CREATE TABLE departament_list AS (SELECT deptno, dname FROM dept);
/
CREATE TABLE manager_list OF Manager;
/
INSERT INTO manager_list VALUES(Manager(7782, 'JOHN', Departament(20, 'TEXAS'), 6000, 2));
这是最后一行的问题,我收到以下错误
ORA-00932:不一致的数据类型:得到预期的 REF SYS.DEPARTAMENT 系统部门。
现在不要误会我的意思,我已尝试使用以下方法进行整个选择:REF(d) from department_list d ...但我收到另一个错误,提示默认构造函数的参数数量不正确。
也许我做错了,你可以帮助阐明我错在哪里。再次感谢!
【问题讨论】:
-
你能显示你使用 REf(d) 的版本以及它的确切错误吗?
-
这行不应该是:'CREATE TABLE 部门列表 AS (SELECT deptno, dname FROM dept);'是 'CREATE TABLE department_list AS (SELECT deptno, dname FROM Department');
-
@Typo - 从列名来看,它看起来像是基于旧的 scott emp/dept 架构,而不是具有部门的 hr 架构?不过,不要认为这与问题有关。
-
@AlexPoole 我认为这是基于他在上面创建的类型 Department
-
这将有助于了解异常发生在哪一行代码