oracle无法将值插入嵌套表字段中

时间:2016-12-26 09:17:46

标签: oracle plsql nested-table

我有示例CUSTOMERS表。 我将表中的值作为INSERT脚本导出。 我拿了一行,修改了PK中的值并重新执行了插入。

Insert into oe.customers (CUSTOMER_ID,
                          CUST_FIRST_NAME,
                          CUST_LAST_NAME,
                          CUST_ADDRESS,
                          PHONE_NUMBERS,
                          NLS_LANGUAGE,
                          NLS_TERRITORY,
                          CREDIT_LIMIT,
                          CUST_EMAIL,
                          ACCOUNT_MGR_ID,
                          CUST_GEO_LOCATION,
                          DATE_OF_BIRTH,
                          MARITAL_STATUS,
                          GENDER,
                          INCOME_LEVEL,
                          CREDIT_CARDS) 
values ( oe.customer_seq.nextval,
         'Donald',
         'Hunter',
         OE.CUST_ADDRESS_TYP('5122 Sinclair Ln','21206','Baltimore','MD','US'),
         OE.PHONE_LIST_TYP('+1 410 123 4795'),
         'us',
         'AMERICA',
         2600,
         'Donald.Hunter@CHACHALACA.EXAMPLE.COM',
         145,
         MDSYS.SDO_GEOMETRY(2001,8307,MDSYS.SDO_POINT_TYPE(-76.545732,39.322775,NULL),NULL,NULL),
         to_date('20-JAN-60','DD-MON-RR'),
         'married',
         'M',
         'G: 130,000 - 149,999',
         OE.TYP_CR_CARD_NST(OE.TYP_CR_CARD('Visa',100000000000011)));

我有以下错误消息:

  

命令行错误:32列:29错误报告 - SQL错误:   ORA-00904 ::无效的标识符   00904. 00000 - “%s:无效标识符”   *原因:
  *操作:

指的是行:

OE.TYP_CR_CARD_NST(OE.TYP_CR_CARD('Visa',100000000000011)));

类型的定义是:

create or replace type typ_cr_card as object
    ( card_type VARCHAR2(25)
    , card_num  NUMBER);

create or replace type typ_cr_card_nst as table of typ_cr_card;

有人可以告诉我,这个插入行有什么问题,因为它是SQL DEVELOPER提供的那个?

注意:另外,我尝试使用在此表中插入值的过程,错误引用TYP_CR_CARD_NST数据类型。

0 个答案:

没有答案