Sql 如何创建集合并在包含该集合的表中插入值?
嘿,我正在创建一个数据库来存储有关体育俱乐部的一些信息,在那里我有教练和运动员,但当我尝试将教练(教练)插入表中时,会出现错误: 我的代码是这样的:Sql 如何创建集合并在包含该集合的表中插入值?,sql,oracle,plsql,user-defined-types,Sql,Oracle,Plsql,User Defined Types,嘿,我正在创建一个数据库来存储有关体育俱乐部的一些信息,在那里我有教练和运动员,但当我尝试将教练(教练)插入表中时,会出现错误: 我的代码是这样的: 创建继承教练和运动员类型的人员类型(t_persona)。我们必须创建一个返回所有数据的函数 创建或替换类型t_persona作为对象( nom VARCHAR2(20), cognom VARCHAR2(20), dataNaix日期, 成员程序mostrar )不是最终的; / 创建或替换类型body t_persona AS 成员程序莫斯特
创建或替换类型t_persona作为对象(
nom VARCHAR2(20),
cognom VARCHAR2(20),
dataNaix日期,
成员程序mostrar
)不是最终的;
/
创建或替换类型body t_persona AS
成员程序莫斯特拉尔是
开始
dbms|u output.put|u line('Nom:'| Nom | Cognom:'| Cognom | DataNaix:'| | DataNaix);
结束;
结束;
/
2.创建游标类型(t_curs)
创建或替换类型t\u curs作为对象(
nom VARCHAR2(50),
霍尔斯数(10),
lloc VARCHAR2(50),
日期
);代码>
3.创建t_curs类型的课程集合(t_curos)
创建或替换类型t_curos作为t_curs的varray(20)代码>
4.coach类型(t_entrandor)的创建必须从t_persona类型继承。这必须有一个返回所有数据的函数,重用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 of t_entrenador
在表格entrenadors中插入两个entrena
将“Daniel”、“Rovira”、“to_date”(2014年1月12日)、“DD/MM/yyyyy”)、“65555222”、t_cursos(“Sping”、1、“España”、to_date(2014年1月12日)、“DD/MM/yyyyy”))插入到转口商价值中代码>
如果数字6是错误发生的地方,有人能帮我找出哪里出了问题吗?谢谢大家! t_entrenador.cursos
的数据类型为t_cursos
,这是一个t_curs
的表。要实例化表,需要传递t\u 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'))
)
);
您的t\u entrenador
类型正文将不会编译。此处对cursos
的引用无效:dbms_output.put_line('Telefon:'| | Telefon | | |'cursos:'| | cursos))代码>。它是一个表,DBMS_输出无法呈现它。您需要引用表的一个属性,比如cursos.count()
。我知道我会解决这个问题的!非常感谢。