从另一个 table (oracle) 向嵌套的 table 添加值

add values to nested table from another table (oracle)

我正在尝试将值插入到嵌套的 table 中,其中包含另一个 table 的对象。这就是我正在尝试的(抱歉,我是 dbs 的新手):

INSERT INTO Ocurrences (..., oSpace) VALUES  
(other inserts,
/* insert I don't know to do it to nested table oSpaces */
);

如何在 oSpaces 中添加一个值,从 table 个空间插入一个对象?

谢谢。

只需使用 REFerences 的集合:

INSERT INTO Ocurrences (
  CCase,
  /* ... Other column identifiers ..., */
  oSpaces
) VALUES (
  'abc',
  /* ... Other column values ..., */
  tSpace(
    (SELECT REF(s) FROM spaces s WHERE s.intcode='1')
  )
);

db<>fiddle here


顺便说一句,'20/02/2020' 不是 DATE 数据类型,它是一个字符串文字,依赖于隐式字符串到日期的转换。如果用户的 NLS_DATE_FORMAT 会话参数与您的字符串格式不匹配,则此隐式转换将失败,并且由于任何用户都可以随时更改其会话参数,因此这不是您应该依赖的东西。

相反,您应该使用:

  • 日期文字DATE '2020-02-20';或
  • 显式转换TO_DATE('20/02/2020', 'DD-MM-YYYY')