2012-05-10 35 views
0

我們有兩臺CentOS 6.2機器。一個運行Oracle 11g2,另一個運行我們自己的定製軟件。該軟件從命令行調用SQL * Plus執行一系列查詢。其中一個查詢使SQL * Plus崩潰不會發出任何警告/錯誤,只是直接進入命令行並退出代碼1.在遠程連接上插入查詢SQL * Plus'崩潰'

我試圖從SQL * Plus手動運行此查詢,同樣的問題。我試圖在本地數據庫服務器上運行它,它只是起作用。

運行我們自己的軟件的機器上的設置: 我從數據庫服務器複製了$ ORACLE_HOME內容。 設置ORACLE_HOME該路徑 將LD_LIBRARY_PATH設置爲$ ORACLE_HOME/lib目錄 設置path $ PATH:$ ORACLE_HOME/bin中

的SQL * Plus呼叫工程完美,只是沒有與某些類型的查詢。有什麼建議麼?

insert into DPF_RT_DATA_ANALYSIS (
run_id, 
entity_name, 
table_state, 
state_type, 
column_name, 
ctype, 
function, 
step, 
value, 
occurences 
) 
select 
'&RUN_ID', 
'MUT_BAG_WPL_GMT', 
'ANALYSIS_MUT_BAG_WPL_GMT', 
'ANALYSIS', 
'WOONPLAATS', 
'Varchar2', 
'MIN_FREQ', 
step, 
value, 
occ 
from (
select rownum step, colname value, freq occ 
from (
select WOONPLAATS colname, count(WOONPLAATS) freq 
from MUT_BAG_WPL_GMT 
group by WOONPLAATS 
order by freq asc 
) where rownum <= 20 
); 

任何人都遇到過這個問題或有任何建議如何解決這個問題?

+0

這可能是'&'RUN_ID'導致SQL * Plus認爲它需要提示。你是否在腳本中更早設置它? – Phil

+0

是的,這不是問題...在早期的查詢 – ferdyh

+0

工作我相信這個問題是更多有關庫/路徑設置比查詢有問題,因爲它運行在任何地方,但sqlplus。 – ferdyh

回答

0

嘗試混淆你的派生表,例如:

insert into DPF_RT_DATA_ANALYSIS (
    run_id, 
    entity_name, 
    table_state, 
    state_type, 
    column_name, 
    ctype, 
    function, 
    step, 
    value, 
    occurences 
    ) 
select '&RUN_ID', 
    'MUT_BAG_WPL_GMT', 
    'ANALYSIS_MUT_BAG_WPL_GMT', 
    'ANALYSIS', 
    'WOONPLAATS', 
    'Varchar2', 
    'MIN_FREQ', 
    step, 
    value, 
    occ 
from (
    select rownum step, 
     colname value, 
     freq occ 
    from (
     select WOONPLAATS colname, 
      count(WOONPLAATS) freq 
     from MUT_BAG_WPL_GMT 
     group by WOONPLAATS 
     order by freq asc 
     ) a 
    where rownum <= 20 
    ) b; 
+0

但不應該產生一個錯誤?所有代碼都可以在SQLDeveloper和SQL * Plus 10中完美工作 – ferdyh

0

的問題是由於在SQL * Plus 11.2.0.1.0錯誤......我們已經更新至11.2.0.3.0我們的問題似乎已經消失。