2012-08-10 33 views
1

我想知道是否可以在接受用戶輸入的SQL腳本中提供變量值。這是較大任務的一小部分(一個問題涉及編寫腳本,該腳本必須調用另一個腳本,這又需要用戶輸入)。我無法改變需要用戶輸入的腳本。SQL * Plus中腳本的輸入重定向

爲簡單起見,假設我有foo.sql如下:

ACCEPT TABLENAME CHAR PROMPT 'Enter Table: ' 
SELECT * FROM &TABLENAME; 

一旦我已經登錄到SQL * Plus,是有我執行foo.sql和以類似的方式重定向輸入方式擊?在理想的世界中,我可以這樣做,如下所示:

@foo < "SOMETABLE" 

不幸的是,這是行不通的。有什麼辦法可以做到這一點?

回答

2

你可以從文件到sqlplus命令本身重定向輸入,登錄前:

> sqlplus user/[email protected] @foo < input_file 
+0

感謝您的想法。我認爲這可能是唯一的方法,我沒有任何運氣在'sqlplus'本身內找到類似的機制。我自己用這個方法很好,但是賦值規範沒有指定標記如何輸入數據。通常它是自動的,但它們可以手動執行(或者像你一樣重定向到「sqlplus」本身)。 爲了防萬一有人有辦法在sqlplus本身中重定向,我會將問題留待今後一天左右,但如果沒有發生,我會接受您的答案。同時,我會通過電子郵件發送我的演講並進行澄清。 – 2012-08-11 01:22:44