簡體   English   中英

在oracle中插入一行時出現無效數字錯誤

[英]invalid number error when inserting a row in oracle

我需要在 oracle 中的表中插入一行。

insert into policy_tab values ('4325','29-APR-98','29-APR-2007',32424,(select ref(a) from agent_tab a where a.nic='242424v'),claim_ntty(
claim_t('25-APR-2005','25-JUN-2005'),
claim_t('26-APR-2005','26-JUN-2005')
));

但是當我執行它會顯示這個錯誤。 “ORA-01722:無效號碼 ORA-06512:在“SYS.DBMS_SQL”,第 1721 行”

create type policy_ty as object(
 pid char(5),
 sDate date,
 eDate date,
 premium number(10,2),
 agent ref agent_ty,
 claims claim_ntty
);

create table policy_tab of policy_ty(
 pid primary key,
 agent SCOPE IS agent_tab
)
nested table claims store as claim_nttab;

create type claim_t AS OBJECT(
 eDate date,
 amount number(10,2)
);
create type claim_ntty as table of claim_t;

create type agent_ty as object(
 nic char(10),
 name varchar(50),
 address varchar(50),
 contactNo contactNo_vaty
) NOT FINAL;

create table agent_tab of agent_ty(
 nic primary key
);

那么如何解決呢?

從第一眼看,您需要像下面這樣使用。 但是,提供的信息不足以解決問題。 也需要相關對象定義。

這必須改變 - '29-APR-98''29-APR-1998'

INSERT INTO policy_tab
        VALUES (
                  '4325',
                  '29-APR-1998',
                  '29-APR-2007',
                  32424,
                  (SELECT REF (a)
                     FROM agent_tab a
                    WHERE a.nic = '242424v'),
                  claim_ntty (claim_t ('25-APR-2005', '25-JUN-2005'),
                              claim_t ('26-APR-2005', '26-JUN-2005')));

編輯:

第二個觀察。 您創建了以下對象:

create type claim_t AS OBJECT(
eDate date,
amount number(10,2)
);

並使用它:

claim_ntty (claim_t ('25-APR-2005', '25-JUN-2005'),
                                  claim_t ('26-APR-2005', '26-JUN-2005')));

第二個參數應該是number而不是date

所以你的插入應該是:

INSERT INTO policy_tab
        VALUES (
                  '4325',
                  '29-APR-1998',
                  '29-APR-2007',
                  32424,
                  (SELECT REF (a)
                     FROM agent_tab a
                    WHERE a.nic = '242424v'),
                  claim_ntty (claim_t ('25-APR-2005', 123), claim_t ('26-APR-2005', 456)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM