oracle sqlplus возвращается к вызывающей программе без каких-либо результатов ровно через час

#database #oracle #sqlplus #ksh

Вопрос:

У меня есть один скрипт оболочки, который вызывает соединение sqlplus, работающее в фоновом режиме, и выполняет в нем сохраненные процессы, sql — запросы. Всякий раз, когда у нас есть большой объем записей, подлежащих объединению, мы вызываем SP, который, в свою очередь, выполняет слияние из таблицы этапов в базовую таблицу. Слияние прошло успешно, но SQLPLUS возвращается к сценарию оболочки ровно через час без каких-либо результатов, а затем выдает результаты слияния SP при следующем выполнении запроса, как указано в приведенном ниже журнале. В приведенном ниже примере __LV_MERGE_SB_ФАЙЛ-это файл sql SP, который начал выполняться в 20210728.01.00.09 24370, но затем ровно через час в 20210728.02.00.09 24370 он вернулся к сценарию оболочки. Затем, когда началось выполнение файла TS_SQL, он выдал ему результаты слияния SP.

 #SQLPLUS in back ground:
sqlplus -s $CONNECTION |amp;
print -p "set heading off;"
print -p "set feedback off;"
print -p "set pagesize 0;"
print -p "set linesize 500;"
print -p "set numwidth 20;"

#function to execute the sql files
function ExecuteSQL
{
    __OUTPUT=""
    print -p @$__LV_IN_SQL_FILE
    print -p "prompt $__EOF"
    while read -p __OUTPUT
    do
        if [[ "$__OUTPUT" == "$__EOF" ]]; then
            break
        else
            print "E3 Failure Check 1: $__OUTPUT"
            echo "$__OUTPUT" >> $__LV_OUT_SQL_FILE
        fi
    done
}

#calling above function like below
ExecuteSQL $__LV_MERGE_SB_FILE $__LV_MERGE_OUT_SB_FILE

#content of sql file in this case merge SP
cat $__LV_MERGE_SB_FILE
var msg_txt varchar2(2000);
var msg_val number;
call SCHEMA.MERGE_SP( 'SGMSTG.STAGE_TABLE' , 'SCM.BASE_TABLE','ROW_NUM',40000,:msg_txt,:msg_val);
print msg_txt;
print msg_val;

#calling function like below
ExecuteSQL $TS_SQL $TS_DAT

#content of file to get timestamp from DB
cat $TS_SQL
select TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD HH24:MI:SS.FF6') FROM DUAL;

#Logs:
20210728.01.00.09 24370: 12. script.ksh___________Function [ ExecuteSQL ] Started___________
20210728.01.00.09 24370: Executing The SQL File [ __LV_MERGE_SB_FILE ]........
20210728.02.00.09 24370: 12. script.ksh___________Function [ ExecuteSQL ] Completed___________
20210728.02.00.09 24370: 12. script.ksh___________Function [ ExecuteSQL ] Started___________
20210728.02.00.09 24370: Executing The SQL File [ TS_SQL ]........
20210728.02.00.28 24370: E3 Failure Check 1: > Successfully Merged the data from SGMSTG.STAGE_TABLE into SCM.BASE_TABLE
20210728.02.00.28 24370: E3 Failure Check 1: >
20210728.02.00.28 24370: E3 Failure Check 1: > 0
20210728.02.00.28 24370: E3 Failure Check 1: >
20210728.02.00.28 24370: E3 Failure Check 1: > END
20210728.02.00.28 24370: 12. script.ksh___________Function [ ExecuteSQL ] Completed___________
20210728.02.00.28 24370: LOAD END TIME STAMP : Successfully Merged the data from SGMSTG.STAGE_TABLE into SCM.BASE_TABLE 0
20210728.02.00.28 24370: Merge Stored Proc Return Status is :-1
 

Любая помощь будет очень кстати. заранее спасибо.