【发布时间】:2019-12-09 12:05:50
【问题描述】:
我有以下 shell 脚本,它有一个 bteq 调用以将 Teradata BLOB 字段导出到文本文件。我发现如果文件大于 64K,它就不会被写入。我知道我可以设置 INDICDATA DEFERLIMITS=0,0,然后它将在我提供的文件名中写入它创建的 BLOB 文件的名称。我提供的文件名包含一个路径,并且该文件被写入正确的位置。我在服务器上找不到正在创建的 BLOB 文件。我以为它会在同一个目录中创建,但我没有看到它。我是否也必须设置该位置?如果有,怎么做?
-------------------------------
Shell Script with BTEQ:
-----------------------------------
#!/bin/sh
modelId=$1
runId=$2
filename=$3
file1="/export/home/pc8admin/pc8store/infa_shared/bin/ENGV_D042A/${filename}"
echo $modelId
echo $runId
echo $filename
echo $file1
bteq <<lbl_btq
.RUN FILE=/export/home/pc8admin/pc8store/infa_shared/OAS/td_mlbtq_engv_etl.scr
.EXPORT INDICDATA FILE = $file1;
.SET LARGEDATAMODE ON;
.EXPORT LDOPREFIX 'doc_'
.EXPORT LDOSUFFIX 'txt'
DATABASE XXX_XX;
.IF errorlevel <> 0 THEN .QUIT errorcode;
SELECT IL.FIL_OBJ_UD
FROM XXX_XX.SIMLTR_CFG_INV_LOAD IL
INNER JOIN XXX_XX.SIMLTR_CFG_INV_LOAD_STAT ST ON IL.FIL_ID = ST.FIL_ID
WHERE ST.MDL_ID = $modelId AND ST.SIMLTR_RUN_ID = $runId AND ST.INV_TYP_ID = 'E'
AND IL.FIL_ID = 5;
.IF errorlevel <> 0 THEN .QUIT errorcode;
.END EXPORT
.LOGOFF
.EXIT 0
lbl_btq
我提供的文件名包含以下文本:doc_FIL_OBJ_UD_r1.txt
我找不到 doc_FIL_OBJ_UD_r1.txt 文件。
【问题讨论】:
标签: teradata