Teradata-在Unix Linux命令提示符下运行文件/脚本
我在Unix box上安装了客户端/TTU,用于Teradata 如果我这样做,它会起作用。其中,“…”是Teradata BTEQ正常输出,完成以下操作后,我将返回提示 $bteqTeradata-在Unix Linux命令提示符下运行文件/脚本,unix,client,teradata,automated-deploy,Unix,Client,Teradata,Automated Deploy,我在Unix box上安装了客户端/TTU,用于Teradata 如果我这样做,它会起作用。其中,“…”是Teradata BTEQ正常输出,完成以下操作后,我将返回提示 $bteq …… .. . logon dbname/dbuser,dbpassword SELECT DATE, TIME; .LOGOFF; .QUIT; .. … $ 现在,假设我将以下几行放在一个名为“testtd.bteq的文件中 我现在想要的是。。。如何在Unix$提示符下运行此脚本(.bteq) 到目前为止,我
……
..
. logon dbname/dbuser,dbpassword
SELECT DATE, TIME;
.LOGOFF;
.QUIT;
..…
$ 现在,假设我将以下几行放在一个名为“testtd.bteq的文件中 我现在想要的是。。。如何在Unix$提示符下运行此脚本(.bteq) 到目前为止,我尝试了以下方法,但都不起作用,可能是我遗漏了什么:
1.bteqtesttd.log
2.bteq< .run/path/to/testtd.bteq
遗传密码器
有什么想法吗?如果使用herdocument方式,是否必须首先提供“.logon dbname/dbuser,dbpassword” 在$prompt上运行bteq命令甚至不会像其他命令一样给我任何可以使用的帮助/选项 i、 e。
cmd-u用户-p密码-f文件等 PS-它通过方法1工作——当我在登录命令的脚本文件中硬编码密码时 我想通过导出一个名为“dbpassword”的变量来实现同样的功能 i、 e $export dbpassword=XYXYX 及
然后,在脚本文件中,我可以使用“$dbpassword”。。。在登录命令中。。不知何故,export并不是在.bteq logon命令中导出var。我所知道的最佳实践是
~/.tdlogon
文件中bteq
调用及其所需的所有内容李>
例如,使用创建一个文件bteqScript.sh
/* define helper variables, e.g.... */
export ARCHIVEDIR=~/data
export DATAFILE=dataOutput1.txt
bteq <<EOF
.run file=$HOME/.tdlogon
.export data file=${ARCHIVEDIR}|${DATAFILE}
/* sql code on next line(s) */
select
'foo' as "bar"
;
.export reset
EOF
/*定义辅助变量,例如*/
导出ARCHIVEDIR=~/data
导出数据文件=dataOutput1.txt
bteq是的,我想你会在某个地方有你的登录凭证。这是没有办法的。用钥匙代替是正确的解决方案,但我不知道你的bteq
是否有这样的能力。我也这么认为。如果我在shell脚本中并执行以下操作,则herdoc方法可以工作:bteq似乎需要将.bteq文件调整为虚拟运行时文件,并替换关键字“$dbpassword”使用真实密码值,然后传递该值,而不是实际的.bteq,然后删除该虚拟文件。我建议在主文件夹中保留一个包含用户名和密码的.tdlogon
文件,其中包含以下内容:.logon databaseName/username,password
,您可以使用启动bteq
代码。运行文件=$HOME/.tdlogon
即可登录。
/* define helper variables, e.g.... */
export ARCHIVEDIR=~/data
export DATAFILE=dataOutput1.txt
bteq <<EOF
.run file=$HOME/.tdlogon
.export data file=${ARCHIVEDIR}|${DATAFILE}
/* sql code on next line(s) */
select
'foo' as "bar"
;
.export reset
EOF