【发布时间】:2018-06-29 06:02:29
【问题描述】:
这是我创建的用户定义类型。
create or Replace TYPE cust_address_typ_new AS OBJECT
( add_id NUMBER,
street_address VARCHAR2(40)
, postal_code VARCHAR2(10)
, city VARCHAR2(30)
, state_province VARCHAR2(10)
, country_id CHAR(2)
);
下面是新类型的表格
CREATE TABLE address_table OF cust_address_typ_new;
现在我创建了另一个表,如下所示
CREATE TABLE customer_addresses (
add_id NUMBER,
address REF cust_address_typ_new
SCOPE IS address_table);
现在我正在尝试将值插入到customer_addresses 表中
insert into customer_addresses
values(1,SYSTEM.CUST_ADDRESS_TYP_NEW(1,'hi','87987','city','state',''))
【问题讨论】:
-
不相关,但为什么要将对象存储在
SYSTEM架构中? -
@Kaushik Nayak ,这是默认架构
-
你的问题是什么?您的代码会产生错误还是其他原因。请澄清您的问题。
-
没有存储用户数据的默认模式。 docs.oracle.com/database/121/ADMQS/… sys 和 system 仅用于管理任务。如果你将它们转储到 SYS 中,你将面临很多问题。您应该为数据库用户创建一个单独的模式,并在那里创建所有对象。另请阅读:stackoverflow.com/questions/18304174/…
-
顺便说一下,
char类型通常是无用的,并且是一些晦涩的错误的来源。指定''(空字符串)时是否要插入' '(两个空格)?你知道哪些情况会调用空白填充,哪些不会?字符串最好使用标准的varchar2。
标签: sql oracle plsql sql-insert