如何使用BTEQ编写批处理(* .bat)脚本来执行Teradata查询?

时间:2011-11-18 07:50:07

标签: sql batch-file teradata

以下是我的script.bat的内容:

@echo off

cd C:\Program Files\Teradata\Client\13.0\bin

bteq .LOGON server/username,password;

select date;

.LOGOFF

@echo off goto end

:end @echo exit

我对登录没有问题,但似乎bteq无法读取我的查询语句:

  

选择日期;

它会一直提示输入。谁能帮助我让bteq读取并执行查询语句?

我在线尝试了有关输入和输出文件的解决方案:

bteq <myscript.txt> mylog.log

但它也没有用。

2 个答案:

答案 0 :(得分:2)

您将需要两个文件,一个是批处理,另一个是命令。

批处理文件:

echo off
cd C:\bteq_directory\
bteq < c:\commands.txt > c:\output.txt 2>&1
@echo off goto end
:end @echo exit

命令:

.LOGON server/username,password
select date;
.LOGOFF

修改

.LOGON...

之后删除了分号

答案 1 :(得分:0)

这有点晚了,但这是我发现的:

我将BTEQ脚本保存在名为BTScript.txt的文件中:

.LOGON <servername>/<username>,<password>;
.SET WIDTH 20000;
.SET separator '|';
.EXPORT FILE = C:\TEMP\testBTEQ.txt;
SELECT top 10 * ATABLENAME;
.LOGOFF
.EXIT

需要设置宽度以防止数据被截断,如果记录不长,则不会达到20000个字符。

要执行此操作,我执行(我的电脑设置为允许我双击Windows资源管理器中的文件来执行此操作).bat文件的内容为:

echo off
bteq < C:\temp\BTScript.txt > c:\temp\bteqscriptout.txt 2>&1
@echo off goto end
:end @echo exit

此处引用的第二个文件将包含BTEQ的输出。