从另一个 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 个空间插入一个对象?
谢谢。
只需使用 REF
erences 的集合:
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')
。
我正在尝试将值插入到嵌套的 table 中,其中包含另一个 table 的对象。这就是我正在尝试的(抱歉,我是 dbs 的新手):
INSERT INTO Ocurrences (..., oSpace) VALUES
(other inserts,
/* insert I don't know to do it to nested table oSpaces */
);
如何在 oSpaces 中添加一个值,从 table 个空间插入一个对象?
谢谢。
只需使用 REF
erences 的集合:
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')
。