如何创建一个集合并使用该集合在 table 中插入值?
How to create a collection and insert values in a table with the collection?
嘿,我正在创建一个数据库来存储有关体育俱乐部的一些信息,我在那里有教练和运动员,但是当我尝试将教练(entrenadors)插入 table 时出现错误:
我的代码是这个:
- 创建继承教练和运动员类型的人类型(t_persona)。我们必须创建一个 returns 所有数据
的函数
CREATE OR REPLACE type t_persona as object(
nom VARCHAR2(20),
cognom VARCHAR2(20),
dataNaix DATE,
MEMBER PROCEDURE mostrar
) NOT FINAL;
/
CREATE OR REPLACE type body t_persona AS
MEMBER PROCEDURE mostrar IS
BEGIN
dbms_output.put_line('Nom: ' || nom || 'Cognom: ' || cognom || 'DataNaix: ' || dataNaix);
END;
END;
/
2.Creation curs 类型 (t_curs)。
CREATE OR REPLACE type t_curs as object(
nom VARCHAR2(50),
hores NUMBER(10),
lloc VARCHAR2(50),
dia DATE
);
3.Creation 类型为 t_curs.
的课程集合 (t_cursos)
CREATE OR REPLACE TYPE t_cursos AS varray(20) of t_curs;
4.Creation 的教练类型 (t_entrenandor),必须从类型 t_persona 继承。这必须有一个功能,即returns所有数据重用t_persona的功能。
CREATE OR REPLACE type t_entrenador under t_persona(
telefon VARCHAR2(9),
cursos t_cursos,
OVERRIDING MEMBER PROCEDURE mostrar);
/
CREATE OR REPLACE type body t_entrenador as
OVERRIDING MEMBER PROCEDURE mostrar is
BEGIN
(self as t_persona).mostrar;
dbms_output.put_line('Telefon: ' || telefon || 'Cursos : ' || cursos);
END;
END;
5.Create table entrenadors 包含 entrenadors.
CREATE TABLE entrenadors of t_entrenador
- 插入 table entrenadors 两个 entrena
INSERT INTO entrenadors VALUES('Daniel', 'Rovira', to_date('12/01/2014','DD/MM/YYYY'), '65555222', t_cursos('spinning', 1, 'España', to_date('12/01/2014','DD/MM/YYYY')));
那个数字6是错误发生的地方,谁能帮我找出问题所在?谢谢!
t_entrenador.cursos
的数据类型为 t_cursos
,它是 t_curs
的 table。要实例化 table,您需要传递 个 t_curs
的实例。
INSERT INTO entrenadors
VALUES('Daniel', 'Rovira', to_date('12/01/2014','DD/MM/YYYY'), '65555222',
t_cursos(t_curs('spinning', 1, 'España', to_date('12/01/2014','DD/MM/YYYY'))
)
);
嘿,我正在创建一个数据库来存储有关体育俱乐部的一些信息,我在那里有教练和运动员,但是当我尝试将教练(entrenadors)插入 table 时出现错误:
我的代码是这个:
- 创建继承教练和运动员类型的人类型(t_persona)。我们必须创建一个 returns 所有数据 的函数
CREATE OR REPLACE type t_persona as object(
nom VARCHAR2(20),
cognom VARCHAR2(20),
dataNaix DATE,
MEMBER PROCEDURE mostrar
) NOT FINAL;
/
CREATE OR REPLACE type body t_persona AS
MEMBER PROCEDURE mostrar IS
BEGIN
dbms_output.put_line('Nom: ' || nom || 'Cognom: ' || cognom || 'DataNaix: ' || dataNaix);
END;
END;
/
2.Creation curs 类型 (t_curs)。
CREATE OR REPLACE type t_curs as object(
nom VARCHAR2(50),
hores NUMBER(10),
lloc VARCHAR2(50),
dia DATE
);
3.Creation 类型为 t_curs.
的课程集合 (t_cursos)CREATE OR REPLACE TYPE t_cursos AS varray(20) of t_curs;
4.Creation 的教练类型 (t_entrenandor),必须从类型 t_persona 继承。这必须有一个功能,即returns所有数据重用t_persona的功能。
CREATE OR REPLACE type t_entrenador under t_persona(
telefon VARCHAR2(9),
cursos t_cursos,
OVERRIDING MEMBER PROCEDURE mostrar);
/
CREATE OR REPLACE type body t_entrenador as
OVERRIDING MEMBER PROCEDURE mostrar is
BEGIN
(self as t_persona).mostrar;
dbms_output.put_line('Telefon: ' || telefon || 'Cursos : ' || cursos);
END;
END;
5.Create table entrenadors 包含 entrenadors.
CREATE TABLE entrenadors of t_entrenador
- 插入 table entrenadors 两个 entrena
INSERT INTO entrenadors VALUES('Daniel', 'Rovira', to_date('12/01/2014','DD/MM/YYYY'), '65555222', t_cursos('spinning', 1, 'España', to_date('12/01/2014','DD/MM/YYYY')));
那个数字6是错误发生的地方,谁能帮我找出问题所在?谢谢!
t_entrenador.cursos
的数据类型为 t_cursos
,它是 t_curs
的 table。要实例化 table,您需要传递 个 t_curs
的实例。
INSERT INTO entrenadors
VALUES('Daniel', 'Rovira', to_date('12/01/2014','DD/MM/YYYY'), '65555222',
t_cursos(t_curs('spinning', 1, 'España', to_date('12/01/2014','DD/MM/YYYY'))
)
);