Как написать пакетный (* .bat) скрипт для выполнения запроса Teradata с использованием BTEQ? - PullRequest
0 голосов
/ 18 ноября 2011

Ниже приводится содержание моего 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 ]

2 голосов
/ 18 ноября 2011

Вам понадобятся два файла, один - пакетный, а другой - команды.

Пакетный файл:

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...

0 голосов
/ 13 января 2017

Это немного поздно, но вот что я нашел:

Я сохраняю свой скрипт 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.

...