Redirect 如何将错误消息发送到BTEQ for teradata中的文件

Redirect 如何将错误消息发送到BTEQ for teradata中的文件,redirect,teradata,Redirect,Teradata,我在批处理文件(.bteq文件)中编写了一些SQL命令,bteq文件如下: .logon localhost:1025/dbc,dbc SELECT 1 FROM dbc.tables WHERE databasename = 'customerservice' AND TABLENAME = 'accounts'; .if activitycount <>0 then drop table customerservice.accounts; CREATE SET TABLE

我在批处理文件(.bteq文件)中编写了一些SQL命令,bteq文件如下:

.logon localhost:1025/dbc,dbc

SELECT 1 FROM dbc.tables WHERE databasename = 'customerservice' AND TABLENAME 
= 'accounts';
.if activitycount <>0 then drop table customerservice.accounts;

CREATE SET TABLE CustomerService.accounts ,FALLBACK ,
 NO BEFORE JOURNAL,
 NO AFTER JOURNAL,
 CHECKSUM = DEFAULT,
 DEFAULT MERGEBLOCKRATIO
 (
  ACCOUNT_NUMBER INTEGER NOT NULL,
  STREET_NUMBER INTEGER,
  STREET CHAR(25) CHARACTER SET LATIN NOT CASESPECIFIC,
  CITY CHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC,
  STATE CHAR(2) CHARACTER SET LATIN NOT CASESPECIFIC,
  ZIP_CODE INTEGER,
  BALANCE_FORWARD DECIMAL(10,2),
  BALANCE_CURRENT DECIMAL(10,2))
UNIQUE PRIMARY INDEX ( ACCOUNT_NUMBER );

insert into customerservice.accounts 
values(20031303,559,'LaSalleAve','SantaMonica','CA',94123,4550.00,4550.00);
insert into customerservice.accounts values(20033587,506,'SomersetWay',
'HermosaBeach','CA',90365,7770.00,7770.00);insert into
customerservice.accounts 
values(20033118,900,'9thStreet','HermosaBeach','CA',90365,3080.00,3080.00);
insert into customerservice.accounts values
(20032649,924,'OregonTrail','HermosaBeach','CA',90365,8200.00,8200.00);
insert into customerservice.accounts values
(20030691,987,'ComptonPlace','SantaMonica','CA',94123,8240.00,8240.00);
.logon localhost:1025/dbc,dbc
从dbc.tables中选择1,其中databasename='customerservice'和TABLENAME
=‘账户’;
.如果activitycount为0,则删除表customerservice.accounts;
创建集合表CustomerService.accounts,回退,
不,在日记之前,
不,在日记之后,
校验和=默认值,
默认合并块比率
(
帐号整数不为空,
街道编号整数,
STREET CHAR(25)拉丁字符集不区分大小写,
CITY CHAR(20)拉丁字符集不区分大小写,
状态字符(2)拉丁字符集不区分大小写,
邮政编码整数,
余额前向小数(10,2),
余额(当前小数(10,2))
唯一主索引(账号);
插入customerservice.accounts
数值(20031303559,'LaSalleAve','SantaMonica','CA',941234550.004550.00);
插入customerservice.accounts值(20033587506,'SomerSway',
“赫莫萨海滩”,加利福尼亚州,903657770.007770.00);插入
customerservice.accounts
价值(20033118900,'9街','Hermosabach','CA',903653080.003080.00);
在customerservice.accounts值中插入
(20032649924,'OregonTrail','Hermosabach','CA',903658200.008200.00);
在customerservice.accounts值中插入
(20030691987,'ComptonPlace','SantaMonica','CA',941238240.008240.00);
然后我像这样运行这个bteq文件:

bteq < test.bteq 2>error.txt
bteqerror.txt
我想将error重定向到error.txt,但它似乎不起作用,可能是因为2只是用于标准错误,而SQL错误不是标准系统错误?
如果是这样,那么有什么方法可以将SQL错误重定向到文件?

已经有一段时间了,但我认为您可以在脚本中包含此命令,以将BTEQ错误重定向到标准错误:
。设置errorout stderr
。它工作得很好,谢谢,可能会重复