2017-10-30 6 views
1

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 
); 

は、どのようにそれを解決するには?

答えて

1

最初の外観から、以下のように使用する必要があります。ただし、提供された情報では問題を解決するには十分ではありません。関連オブジェクトdefintionも必要です。

これは変更する必要があります - '29-APR-98'

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'))); 

'29-APR-1998'に編集:

第2の観察を。

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'))); 

2番目の引数は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))); 
+0

それでもエラーがありました。だから私は –

+0

@A.Wenを更新しますあなたのテーブル 'policy_tab' の定義も投稿してください。あなたは' claim_ntty'とあなたの 'select'ステータムから得るでしょう – XING

+0

done。私は更新しました。 –

関連する問題