You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle SQL中向表插入多条对象类型的kids数据?

Oracle SQL 插入第二条子女记录解决方案

首先你当前的表结构存在限制:person表的ks字段被定义为单个kids对象类型,本身仅支持存储单条子女数据,无法直接存入第二条子女记录。要实现需求可以选择以下两种方案:

方案1:修改字段为集合类型(适合多子女存储场景,推荐)

  • 第一步:创建kids类型的集合类型
CREATE TYPE kids_list AS TABLE OF kids;
  • 第二步:修改person表的ks字段类型,配置嵌套表存储参数
ALTER TABLE person MODIFY ks kids_list
NESTED TABLE ks STORE AS ks_nested_table;
  • 第三步:给已有id为1的记录更新添加第二条子女数据
UPDATE person 
SET ks = kids_list(
    kids('Michelangelo', 'Trudeau', 14),
    kids('Leonardo', 'Trudeau', 10)
)
WHERE id = '1';

后续如果需要插入更多子女,直接在kids_list里追加kids对象即可。

方案2:新增独立子女关联表(不需要修改原表结构,适合扩展)

如果不想改动原person表结构,可以新增关联表单独存储子女数据:

  • 第一步:创建子女关联表,关联person表的id字段
CREATE TABLE person_kids (
    person_id VARCHAR(10),
    kid_info kids,
    CONSTRAINT fk_person_kid FOREIGN KEY (person_id) REFERENCES person(id)
);
  • 第二步:插入第二条子女记录
INSERT INTO person_kids VALUES('1', kids('Leonardo', 'Trudeau', 10));

小提示:Oracle中字符串常量建议使用单引号,双引号一般用于识别大小写敏感的标识符,可避免不必要的语法报错。

内容的提问来源于stack exchange,提问作者Night Fall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:24:06