2016-04-27 40 views
0

我試圖做這樣的事情:選擇輸出不會置換前變量提示顯示

SELECT * From stock ; 
Define input ; 
insert into STOCK values(&input) ; 
commit ; 

我的問題是,選擇的結果不會出現在腳本輸出窗口,直到提示彈出後已顯示從用戶獲得用戶的值input

這個想法是,用戶可以查看錶中缺少的條目,然後插入用戶想要的值。查看選擇後,用戶將被提示輸入,輸入所需的值,然後提交。

如何在提示前顯示查詢結果?

+0

什麼是您的輸入值? – iOS

+1

該選擇沒有出現在哪裏?我真的不明白你在問什麼,或者在做什麼。你如何運行這個,並從哪裏?您是否打算*提示*輸入,而不是在運行前定義它?如果不需要插入,或者需要插入多個值,該怎麼辦?標題中的「交易」是什麼意思? –

+0

輸入值是用戶定義的。用戶進入提示框。 該選擇未出現在腳本輸出中。我希望能夠從select中查看輸出,然後插入表中。在顯示select – Broomer

回答

1

我沒有看到你在SQL Developer 4.1.3中描述的東西,除非我刪除了define行,這行沒有任何用處。

select後面緊跟着insert時,在腳本輸出窗口中顯示查詢輸出之前,確實會彈出替代提示。所以用這個腳本提示至上:

SELECT * From stock ; 
insert into STOCK values(&input) ; 

把任何東西,除了他們之間的空白,似乎「修復」它,即使是註釋行,因此該腳本提示之前顯示在腳本輸出窗口中的結果:

SELECT * From stock ; 
-- 
insert into STOCK values(&input) ; 

您也可以使用accept命令:

SELECT * From stock ; 
accept input prompt 'New value' 
insert into STOCK values(&input) ; 

據推測,這是值得做的開發者如何SQL被解析紙條寫入語句並依次處理。當然,早期版本的SQL Developer可能會有不同的表現,因此您仍然可以通過define行來看到它 - 儘管在提示符之後,腳本窗口中只會生成類似「SP2-0135:symbol INPUT is UNDEFINED」的消息除非定義和插入物之間存在某種東西。

雖然你在做什麼並沒有多大意義,因爲它不允許用戶決定他們實際上不需要/不需要插入任何東西,並且如果他們看到多個值丟失,必須再次運行整個腳本。客戶端並不是真正爲這種交互式用戶輸入而設計的,並且您最好使用應用程序層來執行此操作 - 外殼或命令腳本,或Apex或PHP等。

+0

中這樣在您發佈的第二個代碼片段顯示選擇的結果,然後打開提示?我沒有得到相同的結果,只是在顯示select之前打開輸入提示符。 是的,我確實看到它不是我們沒有涉及到的最有用的想法 「客戶端並不是真正爲這種交互式用戶輸入而設計的,並且最好使用應用層來完成這個任務 - 一個shell或命令腳本或Apex或PHP等。「但因爲它只是我們選擇模塊時明年的介紹模塊 – Broomer

+0

@Broomer - 是的,這就是我所遇到的。你正在使用哪個版本的SQL Developer?並且在select(或定義如果保留)和insert(和/或空白行)之間添加額外的註釋行會影響行爲? –

+0

嗨, 即時通訊使用4.1.3.20,沒有提到的東西改變行爲? – Broomer