2013-09-26 81 views
1

我的代碼是這樣插入到表中有一個值的選擇查詢

insert into table (A,B,C,D) values 
('abb','select appCode,pkid from table where party_id='||party_id,sysdate,user); 

party_id這裏爲varchar和它作爲在存儲過程的條款,所以如果partyid當屬123在存儲過程 後來我想看看在數據庫中的值作爲 選擇appCode,從表那裏party_id =「123」

但是那不會發生,而不是它會爲 選擇appCode,從表PKID PKID其中party_id = 123

請取消。

+0

首先,你必須被插入4列的表5倍的值! –

+0

所以你試圖把一個SQL SELECT(作爲一個字符串)放入'B'列,你需要知道如何引用'party_id'?哪個數據庫? –

+0

@Nadeem_MK:請重新計數,VALUES中有四個值,而不是五個。 –

回答

1

試試這個

insert into table (A,B,C,D) values 
('abb' 
,'select appCode,pkid from table where party_id=''' || party_id || '''' 
,sysdate 
,user); 
0

試試下面的辦法

CREATE TABLE tab1 
(
    t1 VARCHAR2 (100), 
    t2 VARCHAR2 (100), 
    d1 DATE, 
    t3 VARCHAR2 (100) 
); 

CREATE OR REPLACE PROCEDURE test_proc (param user_objects.object_type%TYPE) 
IS 
BEGIN 
 INSERT INTO  tab1 (t1,t2,d1,t3) values 
      ('abc','SELECT object_id   
            FROM     user_objects 
          WHERE     object_type = '''||param||'''',SYSDATE,'scott'); 
END; 

和執行程序

EXEC test_proc('TABLE') 
相關問題