2013-05-07 64 views
0

我想在數據庫Oracle中插入一個新行。
在sql中插入dymamic值

INSERT INTO xx_vms.es_supplier_process_steps (process_step_id, supplier_process_id, supplier_step_id, 
mapped_item_type, mapped_subinventory_code, mapped_subinventory_type, mapped_operation_code, mapping_notes) 
VALUES (xx_vms.seq_es_supplier_proc_step_id.NEXTVAL, xx_vms.seq_es_supplier_proc_id.CURRVAL, 
xx_vms.seq_es_supplier_step_id.CURRVAL, 'ASY', null, 'IN', null, null); 

隨着xx_vms.seq_es_supplier_proc_id.CURRVAL列是此以下查詢結果。例如:122:

select supplier_process_id from xx_vms.es_supplier_processes where supplier_code='TEST'and name='FINAL TEST'; 

但我不知道該怎麼做。請幫幫我!謝謝。

+0

可以請你澄清你的問題多一點? – ankurtr 2013-05-07 03:50:33

+0

我想替換xx_vms.seq_es_supplier_proc_id.CURRVAL,因爲它不是真的。此列的確切值是第二個查詢的結果。 – duykaka 2013-05-07 04:32:23

回答

0

你將要使用子查詢用於插入

INSERT INTO xx_vms.es_supplier_process_steps 
     (process_step_id, 
     supplier_process_id, 
     supplier_step_id, 
     mapped_item_type, 
     mapped_subinventory_code, 
     mapped_subinventory_type, 
     mapped_operation_code, 
     mapping_notes) 
SELECT x_vms.seq_es_supplier_proc_step_id.NEXTVAL, 
     (select supplier_process_id 
     from xx_vms.es_supplier_processes 
     where supplier_code='TEST'and 
       name='FINAL TEST'), 
     xx_vms.seq_es_supplier_step_id.CURRVAL, 
     'ASY', 
     null, 
     'IN', 
     null, 
     null 
FROM DUAL); 
+0

對不起,我無法理解這個查詢。 – duykaka 2013-05-07 04:36:34

+0

我把你的查詢,格式化它,把它變成一個選擇插入(例如:http://stackoverflow.com/questions/25969/sql-insert-into-values-select-from)並取代你需要的是一個查詢您的查詢。 – hrezs 2013-05-07 04:40:47

+0

你不覺得SELECT語句需要'FROM DUAL'嗎?此外,內部子查詢末尾的分號不正確。 – Noel 2013-05-07 04:40:55