我有一個關於假脫機程序結果的問題。我的示例sql腳本看起來像這樣。如何創建一個oracle sql腳本假脫機文件
whenever sqlerror exit failure rollback
set heading off
set arraysize 1
set newpage 0
set pages 0
set feedback off
set echo off
set verify off
declare
ab varchar2(10) := 'Raj';
cd varchar2(10);
a number := 10;
c number;
d number;
begin
c := a+10;
select ab,c into cd,d from dual;
end;
SPOOL
select cd,d from dual;
SPOOL OFF
EXIT;
以上腳本不工作,但我想這樣做,其中的開始端塊,我們計算一些數值,我想閥芯這些結果。
謝謝。
如果塊中存在遊標並且它在開始結尾循環,會發生什麼情況。像 '循環 c:= a + 10; 將c選擇爲:d from dual; end loop; 結束; SPOOL select:d from dual; SPOOL OFF EXIT;' 所以,現在它會給出所有的結果或最終輸出存儲在:d。 如何假脫機如果有循環。 – user987900 2011-12-21 15:39:49
您可以在遊標循環中使用DBMS_OUTPUT來在遊標的每次迭代中輸出值。見編輯.. – Ollie 2011-12-21 15:45:56
嗨Ollie,我還有一個問題。上面的代碼工作正常,當我從SQL *加運行。但是,我有一個shell腳本調用這個SQL腳本並將輸出後臺處理爲文本文件。我在Oracle應用程序中註冊了shell腳本,並且當我從應用程序提交請求運行時。它顯示正常和運行,但它永遠不會完成。做,我必須從shell腳本調用時對上述腳本進行任何更改。 – user987900 2012-01-10 14:04:42