Sql 如何插入到对象表中?
这里我有一个引用两个对象表的表,到目前为止没有错误:Sql 如何插入到对象表中?,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,这里我有一个引用两个对象表的表,到目前为止没有错误: CREATE TABLE venues ( venue_id NUMBER(6), venue_name VARCHAR2(30), address REF address_type SCOPE IS addresses, venue_type REF venue_type SCOPE IS venue_table_type, provision
CREATE TABLE venues (
venue_id NUMBER(6),
venue_name VARCHAR2(30),
address REF address_type SCOPE IS addresses,
venue_type REF venue_type SCOPE IS venue_table_type,
provision provision_table_type)
NESTED TABLE provision STORE AS provision_table;
但是,一旦我尝试使用以下命令插入此表:
INSERT INTO venues (venue_id, venue_name, address, venue_type, provision)
VALUES (seq_venues.NEXTVAL, 'O2', address_type('PENINSULA SQUARE', 'LONDON', 'LONDON', 'SE10 0DX'),
venue_type(20000, 'A MULTI-PURPOSE INDOOR ARENA LOCATED IN THE CENTRE OF LONDON.'),
provision_table_type(
provision_type('BBQ'),
provision_type('RESTAURANTS'),
provision_type('TOILETS')));
我得到以下错误:
第2行错误:
数据类型不一致:应为REF SYS.ADDRESS\u TYPE获得SYS.ADDRESS\u TYPE
我想我是错误地插入了一个引用对象表,希望您能提供一些正确方法的指导
谢谢A
REF
必须引用表中的现有行。例如:
create type address_type is object (a number);
create table addresses of address_type;
insert into addresses values(address_type(1));
commit;
create table venues
(
venue_name VARCHAR2(30),
address REF address_type SCOPE IS addresses
);
insert into venues
values('Name', (select ref(addresses) from addresses addresses where a = 1));
你能用实际使用的数据库管理系统来标记这个吗<代码>SQL只是一种语言。