当我使用外部表时,Shell脚本在内部调用另一个Shell脚本,并且不将输出返回到主脚本

时间:2018-07-02 04:33:04

标签: oracle shell

我的主脚本api_call.sh内部调用config.sh,并将参数值传递给主脚本。 当我在Linux中执行脚本时,脚本运行良好。但是当我通过外部表查询时,第二个脚本不会将输出返回到主脚本。

谁能告诉我。 通过外部表查询时,调用第二个脚本时是否需要指定位置? 以及如何将值从第二个脚本返回到第一个脚本。

脚本1:apicall.sh

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

从配置文件获取应用程序类型到主脚本     v_application_type = $ application_type

脚本2: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 );

0 个答案:

没有答案