将对象值插入到表 PL/SQL 中而不需要指定属性

Posted

技术标签:

【中文标题】将对象值插入到表 PL/SQL 中而不需要指定属性【英文标题】:Inserting object values into table PL/SQL without the need to specify attributes 【发布时间】:2015-04-30 12:23:05 【问题描述】:

我有以下架构

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.idTitulacion(带重音)和 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;
/

【问题讨论】:

我投了赞成票,因为您发布了一个测试用例。不错。 你能用%rowtype代替object吗?如果是,它可能与***.com/questions/13866915/… 重复 @Dmitry - 很相似,但我认为这个问题的对象方面使其不同,不会重复。 没错,我已经看到@Dmitry 指出的帖子了。但是目的是使用其他帖子中没有的对象。 【参考方案1】:

您无法避免在某处引用属性,但您可以将它们隐藏在对象中。

一种选择是有一个成员函数,它使用引用游标按照属性值在表中出现的顺序返回属性值:

CREATE TYPE AsignaturaObj AS OBJECT(
...
  MEMBER FUNCTION attrsAsCols RETURN sys_refcursor
);
/

CREATE OR REPLACE TYPE BODY AsignaturaObj AS 
  MEMBER FUNCTION attrsAsCols RETURN sys_refcursor IS
    temp_rc sys_refcursor;
  BEGIN
    OPEN temp_rc FOR
      SELECT SELF.idAsignatura, SELF.nombre, SELF.créditos, SELF.cuatrimestre,
        SELF.coste, SELF.idProfesor, SELF.idTitulación, SELF.curso
      FROM DUAL;
    RETURN temp_rc;
  END attrsAsCols;
END;
/

然后在您的匿名块中将该引用游标提取到行类型变量中并将其用于插入:

declare
  temp_row asignatura%rowtype;
  temp_rc sys_refcursor;
...
begin
...
  temp_rc := conjuntoAsignaturas(3).attrsAsCols;
  fetch temp_rc into temp_row;

  insert into asignatura
  values temp_row;
end;
/

anonymous block completed

select * from asignatura where idtitulacion = '130110';

IDASIGNATURA NOMBRE                                               CREDITOS CUATRIMESTRE COSTEBASICO IDPROFESOR IDTITULACION CURSO
------------ -------------------------------------------------- ---------- ------------ ----------- ---------- ------------ -----
130113       Programación I                                              9 1                     60 P101       130110       1    
130122       Análisis II                                                 9 2                     60 P203       130110       2    
976677       Análisis matemático                                         6 2                 764,89 P203       130110       3    
130114       Programación II                                             9 1                     80 P101       130110       2    

当然,这依赖于您的对象为您的表定义按正确的顺序放置属性,这使对象变得更加复杂;但在某种程度上简化了插入。

另一种选择是将插入操作封装在成员过程中:

CREATE TYPE AsignaturaObj AS OBJECT(
...
  MEMBER PROCEDURE doInsert
);
/

CREATE OR REPLACE TYPE BODY AsignaturaObj AS 
  MEMBER PROCEDURE doInsert IS
  BEGIN
    insert into asignatura(idAsignatura, nombre, curso, cuatrimestre,
      creditos, costebasico, idProfesor, idTitulacion)
    values (SELF.idAsignatura, SELF.nombre, SELF.curso, SELF.cuatrimestre,
      SELF.créditos, SELF.coste, SELF.idProfesor, SELF.idTitulación);
  END doInsert;
END;
/

然后你的插入就变成了:

declare
...
  conjuntoAsignaturas(3).doInsert;
end;
/

anonymous block completed

select * from asignatura where idtitulacion = '130110';

IDASIGNATURA NOMBRE                                               CREDITOS CUATRIMESTRE COSTEBASICO IDPROFESOR IDTITULACION CURSO
------------ -------------------------------------------------- ---------- ------------ ----------- ---------- ------------ -----
130113       Programación I                                              9 1                     60 P101       130110       1    
130122       Análisis II                                                 9 2                     60 P203       130110       2    
976677       Análisis matemático                                         6 2                 764,89 P203       130110       3    
130114       Programación II                                             9 1                     80 P101       130110       2    

这意味着对象仍然依赖于现有的表,如果不依赖于列顺序。

【讨论】:

非常感谢您的回答。然而,虽然在正常情况下这个解决方案会起作用,但如果你想用 FORALL 进行插入(并避免 pls-00436),你会怎么做? 我正在考虑使用 FORALL 将对象集合“AsignaturaObj”插入到“TablaAsignatura”表中的“Asignatura”表中。 @Álvaro - 是的,它不是非常灵活,也不一定有效;我认为您不能使用批量绑定(与 forall 一样)。不过,您可以使用任何一种方法在正常的 for 循环中进行插入。或者使用普通循环来填充 PL/SQL 记录的本地表,然后将其与 forall 一起使用,但这有点混乱。或者在 forall 内的普通插入中列出属性,但这就是您要避免的。哦.. PLS-00436,对,我没注意到你还在使用 10g,这在 11g 中不是问题。 @Álvaro - 我避免问你的动机是什么,但你最初的问题真的是关于 PLS-00436 和使用 forall 吗?如果是这样,treat 技巧对你有用吗? forall i in ... insert (idAsignatura, ...) values (treat(conjuntoAsignaturas(i) as AsignaturaObj).idAsignatura, ...) ?我目前没有 10g 的实例来玩这个。 我在原始帖子中添加了新代码。事实上,这篇文章背后的真正问题是如何以一种更优雅、更简单的方式实现这一目标,而不必指定所有属性。很抱歉,新代码太短了,但是 *** 对每个帖子的字符数有限制。【参考方案2】:

我不知道这是否回答了您的部分问题,或者您可以利用它。

但在你的例子中,我看到你使用了很多:

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

也许为它编写一个将数据插入表中的过程是一个想法,这样您就不必每次都调用所有列。

例如: (我没有手动数据库,所以我希望这不会出错,但它会给你一个想法。)

CREATE OR REPLACE PROCEDURE addAlumnoAsignature(columnOne IN VARCHAR2, 
                        columnTwo IN VARCHAR2) 
AS
BEGIN
        INSERT INTO AlumnoAsignature(columOneName, columnTwoName)
        VALUES(columnOne, columnTwo)
END;
/

如果你想在表中插入一些东西,你只需要调用这个过程。 例如:

addAlumnoAsignature('A444378', '232325')

我相信您也可以确保某些值进入某个输入部分: 但同样,我没有手动数据库,所以它可能会给你更多的想法。 :-)

addAlumnoAsignature(columnOne => 'A444378', columnTwo => '232325')

如果您更频繁地删除表,您希望恢复表中的数据。 你可以制作一个文件:

BEGIN
       addAlumnoAsignature('A444378', '232325')
END;
/

因此,您只需运行该文件即可再次输入表中的所有数据。

如果您希望在 tableA 中输入某些内容,并且希望该信息也插入/更新到 tableB 中,您可以使用Trigger。在 tableA 上放置一个触发器,当 INSERTUPDATE 发生时激活。

您可以制作触发器,它从表 A 中提取数据,并将其提供给将存储在表 B 中的过程。

【讨论】:

我认为这并不能真正解决对象方面的问题,您要么必须将对象传递给过程,要么仍然在过程 cal 中列出所有对象属性(或插入过程可以是对象类型中的成员过程);并且对forall 方面没有帮助? 亚历克斯是对的。解决方案应该是一条优雅的线,以便 Oracle DB 自动完成下面属性的所有映射。也许问题在于我想要的是 Oracle 中尚未实现的功能 :( ¿你知道如何指示 Oracle 实现某个功能吗?

以上是关于将对象值插入到表 PL/SQL 中而不需要指定属性的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL - 仅当记录不存在时才插入记录

“如何修复 oracle pl/sql 中的触发器?

将内容插入到 innerHTML 中而不清除里面已有的内容

将数据存储在列表中而不丢失它们(C#)

SET IDENTITY_INSERT (Transact-SQL) 允许将显式值插入到表的标识列中

如何将具有十进制值的数字转换为PL / SQL中的浮点数?