2010-05-03 29 views
0

我有一個使用Table(number,ref,ref,varchar2,varchar2,...)模式的表。如何將數據插入到具有模式中的多個ref的對象關係表中

如何將一行數據插入此表中?

當我這樣做:

insert into table 
values (1, select ref(p), ref(d), '239 F.3d 1343', '35 USC § 283', ... 
      from plaintiff p, defendant d 
      where p.name='name1' and d.name='name2'); 

我得到一個 「失蹤表達」 的錯誤。

如果我做的:

insert into table 
1, select ref(p), ref(d), ... 
from plaintiff p, defendant 
where p.name=...; 

我得到一個 「失蹤關鍵字值」 的錯誤。

回答

1

您的插入語法關閉。嘗試:

insert into table 
(select 1, ref(p), ref(d), '239 F.3d 1343', '35 USC § 283', ... 
    from plaintiff p, defendant d where p.name='name1' and d.name='name2'); 

在一般情況下,這是一個很好的做法,明確提到你插入以及列,以避免以後的問題,如果列順序的變化,以及對自我的文檔代碼:

insert into table (col1, col2, col3, ...) 
(select 1, ref(p), ref(d), '239 F.3d 1343', '35 USC § 283', ... 
    from plaintiff p, defendant d where p.name='name1' and d.name='name2'); 
+0

此語法仍然關閉。它拋出了'ORA-00926:缺少VALUES關鍵字' – APC 2010-05-03 21:41:17

1

鑑於這樣的表...

SQL> create table cases 
    2  (case_no number 
    3  , plaintiff_ref REF person_t SCOPE IS plaintiffs 
    4  , defendant_ref REF person_t SCOPE IS defendants 
    5  , col1 varchar2(30) 
    6  , col2 varchar2(30) 
    7  ) 
    8/

Table created. 

SQL> 

我們可以填充它像這樣...

SQL> insert into cases 
    2 select 1, ref(p), ref(d), '239 F.3d 1343', '35 USC § 283' 
    3 from plaintiffs p, defendants d 
    4 where p.id = 1000 
    5 and d.id=2000 
    6/

1 row created. 

SQL> 

...或者像這樣...

SQL> declare 
    2  p_ref REF person_t; 
    3  d_ref REF person_t; 
    4 begin 
    5  select ref(p) into p_ref 
    6  from plaintiffs p 
    7  where p.id = 1000; 
    8  select ref(d) into d_ref 
    9  from defendants d 
10  where d.id = 2000; 
11 
12  insert into cases 
13  values 
14  (2, p_ref, d_ref, 'YYT A.2e 789', '26 FTW § 169'); 
15 end; 
16/

PL/SQL procedure successfully completed. 

SQL> 

裁判的眼睛wateringly長:

SQL> SELECT * FROM情況下 2/

CASE_NO 
---------- 
PLAINTIFF_REF 
-------------------------------------------------------------------------- 
DEFENDANT_REF 
-------------------------------------------------------------------------- 
COL1       COL2 
------------------------------ ------------------------------ 
     1 
0000220208771EFF0FAD71409F85A448C831C0C7B041CAA1874D514FDC9D18EF12DA22C12D 
0000220208981D65F90A004146A1A390DC1048858777ECAC51136743B39A75F37D22DC1379 
239 F.3d 1343     35 USC § 283 

     2 
0000220208771EFF0FAD71409F85A448C831C0C7B041CAA1874D514FDC9D18EF12DA22C12D 
0000220208981D65F90A004146A1A390DC1048858777ECAC51136743B39A75F37D22DC1379 
YYT A.2e 789     26 FTW § 169 


SQL> 
相關問題