【发布时间】:2018-12-04 19:06:35
【问题描述】:
假设我正在使用一个表 person,并且 people 可能有多个姓氏,因此该属性应该是一个由 3 个元素组成的 varray(它与存储姓氏的位置无关),这里是一个用于创建在 oracle 的 sql developer (11G XE) 中输入姓氏、表格人员并添加示例行:
create type lastn as varray(3) of varchar2(10);
CREATE TABLE person
(
ID NUMBER NOT NULL
, last_name lastn
, CONSTRAINT EXEMPLE_PK PRIMARY KEY
(
ID
)
ENABLE
);
insert into person values(1,lastn('dani','bilel'));
我知道如何一次更新所有姓氏,但我需要保留现有姓氏并添加其他姓氏,或者删除一个姓氏而不影响其他姓氏。简而言之,我希望我的代码是这样的(我不熟悉 PL/SQL):
insert into table
(select last_name from example where id=1)
values lastn('new');
在这种情况下,我想获取第一个姓氏为“bilel”,第二个姓氏为“dani”的人
select * from person where id in (select id from pernom p,table(p.last_name)
where column_value(1)='bilel' and column_value(2)='dani');
我知道它不会那样工作,但我想知道这种情况下的 CRUD(create update delete) 语句。和 select 在 where 语句中带有可变数组的语句。
感谢您的回复。
【问题讨论】:
标签: sql oracle11g object-relational-model varray