Сценарий оболочки внутренне вызывает другой сценарий оболочки и не возвращает вывод основного сценария, когда я использую внешнюю таблицу - PullRequest
0 голосов
/ 02 июля 2018

Мой основной скрипт api_call.sh внутренне вызывает config.sh и должен передать значение параметра в основной скрипт. Сценарий отлично работает, когда я выполняю его в Linux. Но когда я запрашиваю через внешнюю таблицу, второй скрипт не возвращает вывод в основной скрипт.

Может кто-нибудь сказать, пожалуйста. Нужно ли указывать местоположение при вызове второго скрипта при запросе через внешнюю таблицу? И как я могу вернуть значение из второго скрипта в первый.

Script1: apicall.sh

export SourceName FileName
    . ./config.sh "$SourceName" "$FileName"

получить тип приложения из файла конфигурации в основной скрипт v_application_type = $ application_type

Script2: config.sh

while :
do
        case $1 in
                xxx)
                                                              application_type=application/json        
                        done
                        break
                        ;;
                *)
                        paramexist=0
                        break
                        ;;
        esac
done

CREATE TABLE XXX_XT
(
  SCRIPT_OUTPUT  VARCHAR2(4000 BYTE)
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY TMP_DIR
     ACCESS PARAMETERS 
       ( RECORDS DELIMITED BY NEWLINE
        preprocessor edw_bin_dir : 'apicall.sh'
        skip 1
        LOGFILE LOG_DIR:'api_call_xt.log'
        fields terminated by ','
       )
     LOCATION (TMP_DIR:'xxx.json')
  )
REJECT LIMIT UNLIMITED
PARALLEL ( DEGREE DEFAULT INSTANCES DEFAULT );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...