2014-03-19 60 views
0

我想執行包含一些set命令的動態sql。是否有可能不嵌入換行符?如何爲包含「set」命令以及sql語句的oracle創建「單線程」

set heading off ; set lines 1000 ; select * from my_table; 

注意上面並沒有因組命令之間的分號工作:

SP2-0158: unknown SET option ";"' 

更新這個問題的全部意義在於做在一行

+0

'set'命令僅對SQL * Plus有意義,即使運行在自己的SQL語句中,也不會在動態SQL語句中失效 - 並且無效。它們是客戶端命令,動態的(或者確實是靜態的)SQL在服務器上運行。你所要求的並沒有什麼意義 - 你必須對動態SQL的結果做些什麼,甚至在SQL * Plus中,'set'不會改變任何東西,除非你選擇了一個ref cursor,然後打印。 –

+0

這是不正確的:我正在更新問題。 – javadba

+0

您似乎沒有像[通常意義上的] [http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/dynamic.htm]一樣使用術語「動態SQL」。您可能需要解釋上下文,包括從何處提交 - 看起來像一個shell腳本可能? –

回答

0

經過廣泛的研究,我得出的結論,這是不可能與甲骨文進行。

0

set命令是SQLPLUS一個指令,並沒有涉及到sql,你可以這樣來做

set heading off lines 1000 select * from my_table;

+0

問題的關鍵在於在一行上完成。 – javadba

+0

做到一行是不可能的,因爲你需要一行sqlplus設置另一行爲sql語句 – Slava

+0

或者你可以把所有內容放在一個單獨的文件中,並在你的腳本中調用它@do_everything_bla_bla,但它是一個不同的故事 – Slava

相關問題