2017-03-06 8 views
0

SQLPLus에서 실행 중이고 파일에 스풀 된 4 개의 명령문이 있습니다. SQLPlus 피드백으로 생성 된 null 행

내가 다음 실행이 파일을 스풀링하려면 '. 100 개 행이 업데이트'파일을 검사 할 때

echo "whenever sqlerror exit sql.sqlcode ROLLBACK" > ${sql_tempfile} 
echo "set echo off" >> ${sql_tempfile} 
echo "set serveroutput on" >> ${sql_tempfile} 
echo "set feedback on" >> ${sql_tempfile} 
echo "set pagesize 0" >> ${sql_tempfile} 
echo "set heading off" >> ${sql_tempfile} 
echo "set linesize 80" >> ${sql_tempfile} 
echo "set autocommit off" >> ${sql_tempfile} 
echo "set exitcommit off" >> ${sql_tempfile} 
echo "set sqlprompt \"$DB_NAME SQL>\"" >> ${sql_tempfile} 
echo "set sqlnumber on" >> ${sql_tempfile} 
echo "set newpage 0" >> ${sql_tempfile} 
echo "set echo on" >> ${sql_tempfile} 
echo "spool $TMPDIR/$filewoextension.log" >> ${sql_tempfile} 
cat ${file} >> ${sql_tempfile} 
echo "\n" >> ${sql_tempfile} 
echo "spool off" >> ${sql_tempfile} 

sqlplus/<<-eoSQL 

@${sql_tempfile} 

, 우리는 행의 일부가 있다고 볼 수 있습니다 또는 '100 rows merged.'가 표시되지만 동일한 파일에는 'rows created'이 표시되는 레코드가 있습니다.

일부 진술에 대한 피드백이 왜 null로 반환되는지 알 수없는 것 같습니다. 이 파일을 스풀링 한 후 정규 표현식을 사용하여 파일을 읽은 다음 개별 문에서 번호가 반환되지 않기 때문에 이후에 문제가 발생합니다.

동일한 문제를 개발 환경에서 시도했지만 동일한 문제가없는 것으로 보입니다. Live 환경에만있는 것으로 보이며 Oracle DBA는 문제를 식별 할 수 없습니다.

도움을 주시면 감사하겠습니다.

감사

+0

대화 형으로 스크립트를 실행하여 동작을 확인할 수 있습니까? 나는 왜 당신이보고있는 효과를 낼지 모르겠지만'피드백 1 설정'은'켜기 '보다 안전합니다. –

+0

죄송합니다 William, $ {sql_tempfile}을 DBA에 넘겼다는 것을 잊었습니다. 그리고 환경에서 파일을 실행할 때 올바른 결과가 스풀링됩니다. –

+0

동일한 계정 또는 동일한 데이터베이스에서 동일한 sqlplus 실행 파일을 실행하고 있습니까? 나는'login.sql'이나'glogin.sql'에서 몇가지 다른 설정이 있을지 궁금합니다. (생각할 수는 없지만) TOAD에서 실행했을 때 당신이 선택하지 않았을 것입니다. 'set feedback 1'에 대해서. –

답변

0

그것이 LD_LIBRARY_PATH이 차이의 원인이되는 정보 중 하나 10.2보다는 11.2으로 설정되고 있었다 낸다.

현재 Oracle 버전으로 설정하는 변수를 편집하면 문제가 해결되는 것 같습니다.