【问题标题】:Is there a way to export a blob column in teradata to a CSV file via a bteq script?有没有办法通过 bteq 脚本将 teradata 中的 blob 列导出到 CSV 文件?
【发布时间】: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


    【解决方案1】:

    LDOPREFIX 除了一些文件名前缀字符外,还可以包含相对或绝对路径。如果不包含路径,则调用 BTEQ 时的当前工作目录将是假定位置。

    【讨论】:

      猜你喜欢
      • 2013-03-16
      • 2017-08-15
      • 2016-02-18
      • 2021-08-18
      • 2021-09-30
      • 2023-01-21
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      相关资源
      最近更新 更多