Мой основной скрипт 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 );