2017-04-06 54 views
0

有沒有辦法在where子句中獲得currval? 我試圖檢查id = currval。我已經試過如下:在where子句中使用currval

insert into order values( 
orderid_seq.nextval, 
SYSDATE , 
&quantity, 
&student_number, 
&room_number, 
&menu_item , 
(select item_cost * order_quantity 
FROM order_stock,order 
WHERE order_stock.menu_item = 
order.menu_item and 
order_id = orderid_seq.currval 
)); 
+1

當你嘗試過時發生了什麼?你正在運行哪個數據庫? – lit

回答

0

什麼數據庫這是?如果它是Oracle,並且orderid_seq是一個序列,則不可以在where子句中使用序列方法。

https://docs.oracle.com/database/121/SQLRF/pseudocolumns002.htm

+0

其SQL開發者 – Michael

+0

哪**數據庫** ? Oracle有一個名爲「SQL Developer」的桌面工具,所以我猜猜它是Oracle,但標籤會有所幫助。 –

+0

對不起,它的oracle – Michael

0

您應該使用IN如果在orderid_seq.currval很多,正確的語法是:

select item_cost * order_quantity 
    FROM order_stock,order 
    WHERE order_stock.menu_item = 
    order.menu_item and 
    order_id IN (select order_id from orderid_seq.currval) 

更新

select item_cost * order_quantity 
    FROM order_stock,order 
    WHERE order_stock.menu_item = 
    order.menu_item and 
    order_id = (select order_id from Your_table where orderid_seq = 'currval') 
+0

因爲orderid_seq.currval中有多個,我只需要它輸入值就可以了當前order_id = currval – Michael

+0

查看我更新的@alex,並注意William Rovertson的回答 – LONG