使用cmd窗口的teradata导出查询不起作用



新帖子:我已经阅读了教程,我发现了这个脚本

.LOGMECH LDAP;
.LOGON  xx.xx.xx.xx/username,password;
.LOGTABLE dbname.LOG_tablename;
DATABASE dbname;
.BEGIN EXPORT SESSIONS 2;
.EXPORT OUTFILE D:test.txt
MODE RECORD format text;
select a.my_date,b.name2,a.value from dbsource.tablesource a
inner join dbname.ANG_tablename b
on a.name1=b.name2
where value=59000
and a.my_date >= 01/12/2015
;
.END EXPORT;
.LOGOFF;

但这就像不工作

D:>bteq < dodol.txt
BTEQ 15.00.00.00 Tue Jan 05 14:40:52 2016 PID: 4452
+---------+---------+---------+---------+---------+---------+---------+----
.LOGMECH LDAP;
+---------+---------+---------+---------+---------+---------+---------+----
.LOGON  xx.xx.xx.xx/username,
 *** Logon successfully completed.
 *** Teradata Database Release is 13.10.07.12
 *** Teradata Database Version is 13.10.07.12
 *** Transaction Semantics are BTET.
 *** Session Character Set Name is 'ASCII'.
 *** Total elapsed time was 4 seconds.
+---------+---------+---------+---------+---------+---------+---------+----
.LOGTABLE dbname.LOG_tablename;
 *** Error: Unrecognized command 'LOGTABLE'.
+---------+---------+---------+---------+---------+---------+---------+----
DATABASE dbname;
 *** New default database accepted.
 *** Total elapsed time was 2 seconds.

+---------+---------+---------+---------+---------+---------+---------+----
.BEGIN EXPORT SESSIONS 2;
 *** Error: Unrecognized command 'BEGIN'.
+---------+---------+---------+---------+---------+---------+---------+----
.EXPORT OUTFILE D:test.txt
 *** Warning: No data format given. Assuming REPORT carries over.
 *** Error: Expected FILE or DDNAME keyword, not 'OUTFILE'.
+---------+---------+---------+---------+---------+---------+---------+----
MODE RECORD format text;
MODE RECORD format text;
     $
 *** Failure 3706 Syntax error: expected something between the beginning of
 the request and the 'MODE' keyword.
                Statement# 2, Info =6
 *** Total elapsed time was 1 second.

+---------+---------+---------+---------+---------+---------+---------+----
select a.my_date,b.name2,a.value from dbsource.tablesource a
inner join dbname.ANG_tablename b
on a.name1=b.name2
where value=59000
and a.my_date >= 01/12/2015
;

旧帖子:

我是teradata的新手,我找到了mload来上传大数据,现在我有问题,有没有使用cmd(win7)将数据从teradata导出到xxx.txt 的选项

--- sample
select a.data1,b.data2,a.data3 from room1.REPORT_DAILY a
inner join room1.andaikan_saja b
on a.likeme=b.data2
where revenue=30000
and content_id like '%super%'
and a.trx_date >= 01/12/2015
;

这是我的mload-up.txt

.LOGMECH LDAP;
.LOGON xx.xx.xx.xx/username,mypassword;
.LOGTABLE mydatabase.LOG_my_table;
SET QUERY_BAND = 'ApplicationName=TD-Subscriber-RechargeLoad; Version=01.00.00.00;' FOR SESSION;
.BEGIN IMPORT MLOAD
  TABLES mydatabase.my_table
  WORKTABLES mydatabase.WT_my_table
  ERRORTABLES mydatabase.ET_my_table mydatabase.UV_my_table;
.LAYOUT LAYOUT_DATA INDICATORS;
.FIELD number * VARCHAR(20);
.DML LABEL DML_INSERT;
INSERT INTO mydatabase.my_table
(               
number =:number
);
.IMPORT INFILE "D:folderdatadata.txt"
  LAYOUT LAYOUT_DATA
  FORMAT VARTEXT
  APPLY DML_INSERT;
.END MLOAD;
.LOGOFF &SYSRC;

我需要将文件导出到我的笔记本电脑的解决方案,就像我放的脚本一样——示例标题。。。。我使用teradasql中的脚本,并搜索cmd脚本

如果只有几个MB和临时导出,您可以使用SQL助手:在工具选项导出/导入中设置分隔符,可以修改刀具选项导出的设置,然后在提交选择之前单击文件导出结果。(类似于TD Studio)

否则,以可读定界格式提取数据的最简单方法是TPT,对于大量数据(GB)为Export,或者为SQL Selector(MB)。TPT适用于包括Windows在内的大多数操作系统。

有一个很好的用户指南,里面有很多示例脚本:作业示例12:提取行并以分隔格式发送

在您的案例中,您将定义一个通用模板文件,如下所示:

DEFINE JOB EXPORT_DELIMITED_FILE
DESCRIPTION 'Export rows from a Teradata table to a delimited file'
(
  APPLY TO OPERATOR ($FILE_WRITER() ATTR (Format = 'DELIMITED'))
  SELECT * FROM OPERATOR ($SELECTOR ATTR (SelectStmt = @ExportSelectStmt)); 
);

$SELECTOR更改为$EXPORT以获得更大的导出。

然后你只需要一个作业变量文件,如下所示:

SourceTdpId         = 'your system'
,SourceUserName     = 'your user'
,SourceUserPassword = 'your password'
,FileWriterFileName = 'xxx.txt'
,ExportSelectStmt   = 'select a.data1,b.data2,a.data3 from room1.REPORT_DAILY a
inner join room1.andaikan_saja b
on a.likeme=b.data2
where revenue=30000
and content_id like ''%super%''
and a.trx_date >= DATE ''2015-12-01'' -- modified this to a valid date literal
;'

唯一不好的部分是,您必须将所选内容中的任何单引号加倍,例如'%super%' -> ''%super%''

最后运行cmd:

tbuild -f your_template_file -v your_job_var_file

根据要从Teradata中提取的数据量,您可以在命令行中使用Teradata BTEQ或Teradata并行传输(TPT)实用程序和EXPORT运算符来提取数据。

TPT实用程序最终取代了传统的Teradata加载和卸载实用程序(FastLoad、MultiLoad、FastExport和TPump),并提供了一种更简单的机制来通过FastExport生成分隔平面文件。对于将大量数据导出到通道或网络连接的客户端,TPT是相当灵活和有效的。

Teradata BTEQ可以执行轻量级加载和卸载功能。BTEQ手册非常擅长为您提供如何使用各种命令生成半结构化报告或数据提取的概述。它没有一个简单的命令来生成分隔的平面文件。如果您查看本手册对EXPORT命令的概述,您应该会对BTEQ在使用通道或网络连接客户端时的行为有一个良好的了解。

最新更新