如何在 TYPE OBJECT 的 VARRAY 中正确插入?

How to INSERT correctly in a VARRAY of TYPE OBJECT?

此时此刻,我在 SQL 开发人员中工作,并验证不同类型的创建。现在的想法是:

CREATE OR REPLACE TYPE actividad_t AS OBJECT(
    nombre varchar2(50),
    contenido varchar2(50),
    plantilla varchar2(50),
    nota float); 

CREATE OR REPLACE TYPE vActividad_t AS VARRAY(5) OF actividad_t;

CREATE OR REPLACE TYPE asig_pers_act_t AS OBJECT(
    dni varchar2(50),
    id_asig int,
    actividades vActividad_t,
    MEMBER FUNCTION calc_media RETURN FLOAT,
    MEMBER PROCEDURE mostrar_datos (SELF IN OUT NOCOPY asig_pers_act_t));

CREATE TABLE Asig_Pers_Act OF asig_pers_act_t;

INSERT INTO Asig_Pers_Act(dni, id_asig, actividades) VALUES
('11223344A', 3, vActividad_t(
  ('Actividad1', 'Contenido1', 'Plantilla1', 7),
  ('Actividad2', 'Contenido2', 'Plantilla2', 8.5),
  ('Actividad3', 'Contenido3', 'Plantilla3', 5),
  ('Actividad4', 'Contenido4', 'Plantilla4', 6.5),
  ('Actividad5', 'Contenido5', 'Plantilla5', 9)));

执行 INSERT 命令后,编译器在控制台中显示:

Informe de error -
Error SQL: ORA-00907: falta el paréntesis derecho
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action:

谁能帮忙告诉我在这种情况下如何正确插入?

将 varray 的元素创建为 actividad_t 个对象。

以下对我有用:

INSERT INTO Asig_Pers_Act(dni, id_asig, actividades) VALUES
('11223344A', 3, vActividad_t(
  actividad_t('Actividad1', 'Contenido1', 'Plantilla1', 7),
  actividad_t('Actividad2', 'Contenido2', 'Plantilla2', 8.5),
  actividad_t('Actividad3', 'Contenido3', 'Plantilla3', 5),
  actividad_t('Actividad4', 'Contenido4', 'Plantilla4', 6.5),
  actividad_t('Actividad5', 'Contenido5', 'Plantilla5', 9)));