oracle更新blol字段超长,oracle - 将对象值插入表PL / SQL而无需指定属性 - 堆栈内存溢出...

我有以下架构

DROP TABLE ALUMNO_ASIGNATURA;

DROP TABLE ASIGNATURA;

DROP TABLE TITULACION;

DROP TABLE PROFESOR;

DROP TABLE ALUMNO;

DROP TABLE PERSONA;

CREATE TABLE PERSONA

( DNI VARCHAR2(9) CONSTRAINT PERSONA_PK PRIMARY KEY,

NOMBRE VARCHAR2(20) CONSTRAINT PERSONA_NOMBRE_NN NOT NULL,

APELLIDO VARCHAR2(30) CONSTRAINT PERSONA_APELLIDO_NN NOT NULL,

CIUDAD VARCHAR2(20),

DIRECCIONCALLE VARCHAR2(30),

DIRECCIONNUM VARCHAR2(3),

TELEFONO VARCHAR2(9),

FECHANACIMIENTO DATE,

VARON VARCHAR2(1) CONSTRAINT PERSONA_VARON_NN NOT NULL

CONSTRAINT PERSONA_VARON_CK CHECK (VARON BETWEEN 0 AND 1)

);

COMMENT ON COLUMN persona.varon IS '0 para mujer, 1 para hombre';

CREATE TABLE PROFESOR

( IDPROFESOR VARCHAR2(4) CONSTRAINT PROFESOR_PK PRIMARY KEY,

DNI VARCHAR2(9) CONSTRAINT PROFESOR_DNI_NN NOT NULL

CONSTRAINT PROFESOR_PERSONA_FK REFERENCES PERSONA (DNI) ON DELETE CASCADE

);

CREATE TABLE ALUMNO

( IDALUMNO VARCHAR2(7) CONSTRAINT ALUMNO_PK PRIMARY KEY,

DNI VARCHAR2(9) CONSTRAINT ALUMO_DNI_NN NOT NULL

CONSTRAINT ALUMNO_PERSONA_FK REFERENCES PERSONA (DNI) ON DELETE CASCADE

);

CREATE TABLE TITULACION

( IDTITULACION VARCHAR2(6) CONSTRAINT TITULACION_PK PRIMARY KEY,

NOMBRE VARCHAR2(30) CONSTRAINT TITULACION_NOMBRE_NN NOT NULL

);

CREATE TABLE ASIGNATURA

( IDASIGNATURA VARCHAR2(6) CONSTRAINT ASIGNATURA_PK PRIMARY KEY,

NOMBRE VARCHAR2(50) CONSTRAINT ASIGNATURA_NOMBRE_NN NOT NULL,

CREDITOS NUMBER(3,1),

CUATRIMESTRE VARCHAR2(1),

COSTEBASICO NUMBER(16,2),

IDPROFESOR VARCHAR2(4) CONSTRAINT ASIGNATURA_PROFESOR_FK REFERENCES PROFESOR (IDPROFESOR) ON DELETE SET NULL,

IDTITULACION VARCHAR2(6) CONSTRAINT ASIGNATURA_IDTITULACION_NN NOT NULL

CONSTRAINT ASIGNATURA_TITULACION_FK REFERENCES TITULACION (IDTITULACION) ON DELETE CASCADE,

CURSO VARCHAR2(1)

);

CREATE TABLE ALUMNO_ASIGNATURA

( IDALUMNO VARCHAR2(7) CONSTRAINT ALUMNO_ASIGNATURA_ALUMNO_FK REFERENCES ALUMNO (IDALUMNO) ON DELETE CASCADE,

IDASIGNATURA VARCHAR2(6) CONSTRAINT ALUMNO_ASIGNATURA_ASIGNAT_FK REFERENCES ASIGNATURA (IDASIGNATURA) ON DELETE CASCADE,

NUMEROMATRICULA VARCHAR2(1) CONSTRAINT ALUMNO_ASIGNATURA_NUM_MATR_NN NOT NULL,

CONSTRAINT ALUMNO_ASIGNATURA_PK PRIMARY KEY (IDALUMNO, IDASIGNATURA)

);

--ALTER TABLE ALUMNO ADD CONSTRAINT ALUMNO_DNI_UQ UNIQUE (DNI);

--ALTER TABLE PROFESOR ADD CONSTRAINT PROFESOR_DNI_UQ UNIQUE (DNI);

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('02852373F','Noelia','Ruiz','Madrid','Romeral','34','916432348',to_date('23/09/74','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('07634664I','Benito','Encinas','Madrid','Polar','67','916436467',to_date('30/01/67','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('10210210B','Juan','Perez','Teruel','Teruel','56','936111111',to_date('01/02/70','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('12354123T','Gregorio','Llamas','Sevilla','Ro','67','942133336',to_date('17/08/79','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('12456789B','Encarna','Loles','Huesca','Huesca','67','955674523',to_date('18/06/78','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('16161616A','Luis','Ramírez','Haro','Pez','34','941111111',to_date('01/01/69','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('17171717A','Laura','Beltrán','Madrid','Gran Vía','23','912121212',to_date('08/08/74','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('18181818A','Pepe','Pérez','Madrid','Percebe','13','913131313',to_date('02/02/80','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('19191919A','Juan','Sánchez','Bilbao','Melancolía','7','944141414',to_date('03/03/66','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('20202020A','Luis','Jiménez','Nájera','Cigüeña','15','941151515',to_date('03/03/79','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('20220220B','Luis','Valiente','Lugo','San Cristobal','23','956567893',to_date('13/04/60','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('21123124R','Javier','Maganto','Madrid','Fax','23','917643653',to_date('16/07/78','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('21212121A','Rosa','García','Haro','Alegría','16','941161616',to_date('04/04/78','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('23232323A','Jorge','Sáenz','Logroño','Luis Ulloa','17','941171717',to_date('09/09/78','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('24242424A','María','Gutiérrez','Logroño','Avda. de la Paz','18','941181818',to_date('10/10/64','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('25252525A','Rosario','Díaz','Logroño','Percebe','19','941191919',to_date('11/11/71','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('26262626A','Elena','González','Logroño','Percebe','20','941202020',to_date('05/05/75','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('30303030B','Pedro','Del Río','Zamora','Antequera','89','967653424',to_date('18/12/68','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('32456245H','Gustavo','Pérez','Valencia','Numancia','234','947676576',to_date('25/04/79','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('37634764E','Mariano','Rodriguez','Madrid','Sal','56','917334653',to_date('23/05/78','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('41515151C','Eduardo','Rodriguez','Valladolid','Roquera','67','956666666',to_date('14/06/75','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('42456487E','Rita','Cantora','Soria','Robles','67','956433423',to_date('24/11/69','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('44212123J','Paloma','Morales','Madrid','Gotan','34','917636436',to_date('12/12/84','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('50101010D','María','Sanz','Malaga','Ronda','8','956454545',to_date('13/05/67','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('54343433T','Alfonso','Cuevas','Valencia','Valencia','45','937845754',to_date('18/07/68','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('57632786G','Susana','Moral','Guadalajara','Gran Vía','35','915762646',to_date('17/08/75','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('63256769H','José','Dorado','Sevilla','Al Andalus','27','945685548',to_date('12/04/78','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('63456432G','Esther','Barahona','Valencia','Valencia','123','935476548',to_date('24/06/79','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('64329354E','Cristina','Santos','Madrid','Evaristo','1','912376475',to_date('18/10/67','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('64423568C','Rocío','García','Madrid','Plaza de España','89','912347890',to_date('12/10/72','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('76347852I','Marta','Canton','Huelva','Flor','56','967764435',to_date('25/04/78','DD/MM/RR'),'0');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('76453435G','Joaquín','Carmona','Valencia','Caracas','12','937634566',to_date('17/04/75','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('76529637F','Rodolfo','Sanz','Madrid','Monasterio','88','915643258',to_date('15/12/80','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('76666436D','Gerardo','Prado','Madrid','Del Olmo','145','917643643',to_date('15/06/67','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('84545680F','Daniel','Chavero','Madrid','jázmin','34','917664764',to_date('23/06/67','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('86546543R','Rufino','Mellado','Sevilla','Rufino','45','948765676',to_date('16/04/76','DD/MM/RR'),'1');

Insert into PERSONA (DNI,NOMBRE,APELLIDO,CIUDAD,DIRECCIONCALLE,DIRECCIONNUM,TELEFONO,FECHANACIMIENTO,VARON) values ('86876755F','Clara','Estévez','Madrid','Barco','34','919536754',to_date('23/03/67','DD/MM/RR'),'0');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P101','19191919A');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P102','10210210B');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P117','25252525A');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P202','20220220B');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P203','23232323A');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P204','26262626A');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P303','30303030B');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P304','24242424A');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P415','41515151C');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P500','50101010D');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P600','37634764E');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P777','86876755F');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P888','63256769H');

Insert into PROFESOR (IDPROFESOR,DNI) values ('P999','76347852I');

Insert into ALUMNO (IDALUMNO,DNI) values ('A010101','21212121A');

Insert into ALUMNO (IDALUMNO,DNI) values ('A020202','18181818A');

Insert into ALUMNO (IDALUMNO,DNI) values ('A030303','20202020A');

Insert into ALUMNO (IDALUMNO,DNI) values ('A040404','26262626A');

Insert into ALUMNO (IDALUMNO,DNI) values ('A050505','12456789B');

Insert into ALUMNO (IDALUMNO,DNI) values ('A060606','64423568C');

Insert into ALUMNO (IDALUMNO,DNI) values ('A070707','42456487E');

Insert into ALUMNO (IDALUMNO,DNI) values ('A080808','76529637F');

Insert into ALUMNO (IDALUMNO,DNI) values ('A090909','64329354E');

Insert into ALUMNO (IDALUMNO,DNI) values ('A101010','02852373F');

Insert into ALUMNO (IDALUMNO,DNI) values ('A121212','16161616A');

Insert into ALUMNO (IDALUMNO,DNI) values ('A122143','21123124R');

Insert into ALUMNO (IDALUMNO,DNI) values ('A131313','17171717A');

Insert into ALUMNO (IDALUMNO,DNI) values ('A232358','07634664I');

Insert into ALUMNO (IDALUMNO,DNI) values ('A256346','32456245H');

Insert into ALUMNO (IDALUMNO,DNI) values ('A344746','76453435G');

Insert into ALUMNO (IDALUMNO,DNI) values ('A444378','57632786G');

Insert into ALUMNO (IDALUMNO,DNI) values ('A465665','44212123J');

Insert into ALUMNO (IDALUMNO,DNI) values ('A653344','86546543R');

Insert into ALUMNO (IDALUMNO,DNI) values ('A654455','84545680F');

Insert into ALUMNO (IDALUMNO,DNI) values ('A747647','63456432G');

Insert into ALUMNO (IDALUMNO,DNI) values ('A754576','76666436D');

Insert into ALUMNO (IDALUMNO,DNI) values ('A796476','54343433T');

Insert into ALUMNO (IDALUMNO,DNI) values ('A834532','12354123T');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('100007','Físicas');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('100011','Políticas');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('100042','Dirección de empresas');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('100043','Economía');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('110010','Ingeniería Industrial');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('110052','Ingeniero Industrial');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('110053','Informática Sistemas');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('110054','Informática Gestión');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('110055','Ingeniero en Informática');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('120001','Derecho');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('130043','Educación social');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('130047','Psicología');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('130048','Pedagogía');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('130049','Psicopedagogía');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('130061','Trabajo Social');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('130110','Matemáticas');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('140034','Filosofía');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('140044','Historia');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('140045','Filología Hispánica');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('140046','Filología Inglesa');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('150210','Químicas');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('160000','Empresariales');

Insert into TITULACION (IDTITULACION,NOMBRE) values ('170056','Turismo');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('000115','Seguridad Vial', '4,5','1','30','P204','170056','1');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('076767','Ampliación de informática gráfica', '6','1','658,89','P500','110053','4');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('097343','Algoritmos paralelos', '6','1','78','P500','110054','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('123536','Ampliación de estructura de computadores', '4,5','2','68,89','P600','110054','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('130113','Programación I', '9','1','60','P101','130110','1');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('130122','Análisis II', '9','2','60','P203','130110','2');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('150212','Química Física', '4,5','2','70','P304','150210','1');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('160002','Contabilidad', '6','1','70','P117','160000','1');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('213123','Automatización industrial', '6','2','78,89','P303','110052','2');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('232325','Ampliación de redes', '6','1','78,9','P888','110054','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('323336','Algoritmos y estructuras de datos II', '4,5','2','45,67','P500','110053','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('324234','Aplicaciones específicas de red', '4,5','1','67,67','P888','110054','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('455457','Álgebra', '4,5','1','78','P415','110054','2');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('484847','Ampliación de arquitectura de computadores', '9','2','45,89','P600','110053','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('634437','Administración avanzada de sistemas informáticos', '9','1','110,89','P415','110054','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('765376','Antecedentes y evolución de la informática', '6','2','87,56','P202','110054','2');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('786476','Análisis de datos', '9','2','76,89','P999','110055','2');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('856557','Algoritmos y estructuras de datos I', '9','2','67','P500','110053','2');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('872464','Ampliación de electrónica', '6','1','56,09','P203','110052','2');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('896476','Arquitecturas avanzadas', '9','2','34,89','P600','110055','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('897478','Ampliación de inteligencia artificial', '9','2','56,89','P600','110055','4');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('976677','Análisis matemático', '6','2','764,89','P203','130110','3');

Insert into ASIGNATURA (IDASIGNATURA,NOMBRE,CREDITOS,CUATRIMESTRE,COSTEBASICO,IDPROFESOR,IDTITULACION,CURSO) values ('986796','Arquitectura e Ingenieria de los computadores', '6','2','45,89','P600','110055','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A010101','150212','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A020202','130113','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A020202','150212','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A030303','130113','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A030303','130122','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A030303','150212','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A040404','130122','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A121212','000115','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A122143','130113','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A122143','130122','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A122143','976677','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A131313','160002','4');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A232358','076767','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A232358','323336','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A232358','856557','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A256346','786476','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A256346','896476','4');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A256346','897478','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A256346','986796','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A344746','213123','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A344746','872464','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A444378','097343','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A444378','123536','4');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A444378','232325','5');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A444378','324234','5');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A444378','455457','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A444378','634437','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A444378','765376','5');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A465665','786476','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A465665','896476','4');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A465665','897478','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A465665','986796','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A653344','213123','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A653344','872464','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A654455','097343','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A654455','123536','4');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A654455','455457','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A654455','634437','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A747647','213123','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A747647','872464','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A754576','130113','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A754576','130122','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A754576','976677','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A796476','130113','1');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A796476','130122','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A796476','976677','3');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A834532','213123','2');

Insert into ALUMNO_ASIGNATURA (IDALUMNO,IDASIGNATURA,NUMEROMATRICULA) values ('A834532','872464','1');

COMMIT;

我创建了一个名为'AsignaturaObj'的对象类型,它映射表'Asignatura'中的行,我想知道是否可以将对象插入表中而不必指定其所有属性:

SET SERVEROUTPUT ON

declare

contador pls_integer;

begin -- tengo que borrar antiguas dependencias entre objetos para poder recrear los míos

select count(*) into contador from user_objects where object_name=upper('TablaAsignatura');

if contador = 1 then

execute immediate 'drop type TablaAsignatura';

end if;

select count(*) into contador from user_objects where object_name=upper('AsignaturaObj');

if contador = 1 then

execute immediate 'drop type AsignaturaObj';

end if;

end;

/

CREATE TYPE AsignaturaObj AS OBJECT(

idAsignatura varchar2(6),

nombre varchar2(50),

curso number(1,0), -- en el original curso y cuatrimestre son varchar2, lo he cambiado por probar

cuatrimestre number(1,0),

créditos number(3,1),

coste number(6,2), -- no necesitamos un número de 16 dígitos como en el original

idProfesor varchar2(4),

idTitulación varchar2(6)

);

/

CREATE OR REPLACE TYPE TablaAsignatura AS TABLE OF AsignaturaObj;

/

declare

conjuntoAsignaturas tablaAsignatura := TablaAsignatura();

miAsignatura AsignaturaObj;

begin

conjuntoAsignaturas.extend(3);

conjuntoAsignaturas(1) := asignaturaObj('222222', 'Pulpos', 2, 1, '4,5', 120, 'Q000', '111111');

conjuntoAsignaturas(2) := asignaturaObj('222223', 'Pólipos', 2, 1, '3', 80, 'Q000', '222222');

conjuntoAsignaturas(3) := asignaturaObj('130114', 'Programación II', 2, 1, '9', 80, 'P101', '130110');

miAsignatura := asignaturaObj('130114', 'Programación II', 2, 1, '9', 80, 'P101', '130110');

-- THIS WORKS OBVIOUSLY

insert into asignatura(idAsignatura, nombre, curso, cuatrimestre, creditos, costebasico, idProfesor, idTitulacion)

values ('130114', 'Programación II', 2, 1, '9', 80, 'P101', '130110');

-- THIS WORKS TOO, BUT IT'S NOT VERY COMFORTABLE TO SPECIFY "OBJECTNAME DOT ATTRIBUTE", NOT ONLY COS THE NUMBER OF ATTRIBUTES CAN BE HIGH BUT ALSO THINK ABOUT USING ANOTHER OBJECT

insert into asignatura(idAsignatura, nombre, curso, cuatrimestre, creditos, costebasico, idProfesor, idTitulacion)

values (miAsignatura.idAsignatura, miAsignatura.nombre, miAsignatura.curso, miAsignatura.cuatrimestre, miAsignatura.créditos, miAsignatura.coste, miAsignatura.idProfesor, miAsignatura.idTitulación);*/

-- BUT THIS DOES NOT :(

insert into asignatura(idAsignatura, nombre, curso, cuatrimestre, creditos, costebasico, idProfesor, idTitulacion)

values (miAsignatura.*);

end;

/

--select * from asignatura where idtitulacion = '130110';

rollback;

请注意,对象字段的顺序和名称与表格中的顺序和名称不完全相同,例如AsignaturaObj.idTitulación(带重音)和asignatura.idTitulacion。

以下代码与@ Alex-Poole关于他自己的回答的评论有关,我的动机是使用FORALL。

declare

conjuntoAsignaturas tablaAsignatura := TablaAsignatura();

begin

conjuntoAsignaturas.extend(4);

conjuntoAsignaturas(1) := asignaturaObj('130114', 'Programación II', 2, 1, '9', 80, 'P101', '130110');

conjuntoAsignaturas(2) := asignaturaObj('222222', 'Teoría de Compiladores', 2, 1, '4,5', 120, 'Q000', '130110');

conjuntoAsignaturas(3) := asignaturaObj('222223', 'Pólipos', 2, 1, '3', 80, 'P101', '222222');

DECLARE

l_error_count NUMBER;

ex_dml_errors EXCEPTION;

PRAGMA EXCEPTION_INIT(ex_dml_errors, -24381);

BEGIN

forall i in 1 .. conjuntoAsignaturas.count SAVE EXCEPTIONS

insert into asignatura(idAsignatura, nombre, curso, cuatrimestre, creditos, costebasico, idProfesor, idTitulacion)

values (TREAT(conjuntoAsignaturas(i) AS AsignaturaObj).idAsignatura, TREAT(conjuntoAsignaturas(i) AS AsignaturaObj).nombre,

TREAT(conjuntoAsignaturas(i) AS AsignaturaObj).curso, TREAT(conjuntoAsignaturas(i) AS AsignaturaObj).cuatrimestre,

TREAT(conjuntoAsignaturas(i) AS AsignaturaObj).créditos, TREAT(conjuntoAsignaturas(i) AS AsignaturaObj).coste,

TREAT(conjuntoAsignaturas(i) AS AsignaturaObj).idProfesor, TREAT(conjuntoAsignaturas(i) AS AsignaturaObj).idTitulación);

EXCEPTION

WHEN ex_dml_errors THEN

l_error_count := SQL%BULK_EXCEPTIONS.count;

DBMS_OUTPUT.put_line('Número de errores: ' || l_error_count);

FOR i IN 1 .. l_error_count LOOP

DBMS_OUTPUT.put_line('Error: ' || i ||

' Índice de error: ' || SQL%BULK_EXCEPTIONS(i).error_index ||

' Mensaje: ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));

END LOOP;

END;

end;

/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值