0

我们有两台 CentOS 6.2 机器。一个运行 Oracle 11g2,另一个运行我们自己的定制软件。该软件从命令行调用 SQL*Plus 来执行一系列查询。其中一个查询使 SQL*Plus 崩溃,没有发出任何警告/错误,只是直接进入命令行并以代码 1 退出。

我尝试从 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
);

有人遇到过这个问题或对如何解决这个问题有任何建议吗?

4

2 回答 2

0

问题是由于 SQL*Plus 11.2.0.1.0 中的一个错误造成的……我们已经更新到 11.2.0.3.0,我们的问题似乎已经消失了。

于 2012-05-11T11:04:02.493 回答
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;
于 2012-05-10T15:03:51.887 回答