【问题标题】:Teradata - run a file/script at Unix Linux command promptTeradata - 在 Unix Linux 命令提示符下运行文件/脚本
【发布时间】:2013-05-08 21:09:30
【问题描述】:

我在 Unix 机器上为 Teradata 安装了客户端/TTU。

如果我执行以下操作,它会起作用。其中“...”是 Teradata BTEQ 正常输出,一旦完成以下操作,我就会回到提示符处。

$ bteq
...
....

. logon dbname/dbuser,dbpassword
SELECT DATE, TIME;
.LOGOFF;
.QUIT;

..
...
$

现在,假设我将以下几行放入名为“testtd.bteq”的文件中

. logon dbname/dbuser,$dbpassword
SELECT DATE, TIME;
.LOGOFF;
.QUIT;

我现在想要的是...如何在 Unix $ 提示符下运行此脚本 (.bteq) ???

到目前为止,我尝试了以下方法,但它们没有奏效,可能是我遗漏了什么:
1. bteq testtd.log

2. bteq HereDocEndsHere

有什么想法吗?如果我使用 HereDocument 方式,是否必须首先提供“.logon dbname/dbuser,dbpassword”?

在 $ 提示符下运行 bteq 命令甚至没有给我任何我可以使用的帮助/选项,就像其他命令一样。

即 cmd -u 用户 -p 密码 -f 文件等...

【问题讨论】:

    标签: unix client teradata automated-deploy


    【解决方案1】:

    我知道的最佳实践是

    1. 将您的 teradata 凭据存储在 ~/.tdlogon 文件中
    2. 创建一个脚本,其中包含您的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
    

    请注意,.run file=... 使用存储在其他位置的凭据执行 .logon 命令。

    感谢 Alex Hasha 的 bteq 脚本。

    【讨论】:

      【解决方案2】:

      PS - 它通过方法 1 工作——当我在 LOGON 命令的脚本文件中硬编码密码时。

      我想通过导出一个名为“dbpassword”的变量来做同样的事情

      $ export dbpassword=xyxyxyxyx

      然后,在脚本文件中,我可以在 LOGON 命令中使用“$dbpassword”...。不知何故,导出不会在 .bteq 登录命令中导出 var。

      【讨论】:

      • 是的,我猜你会在某处获得登录凭据。没有解决办法。使用密钥代替是正确的解决方案,但我不知道您的 bteq 是否能够这样做。
      • 我也觉得。如果我在我的 shell 脚本中并执行以下操作,HereDoc 方法就可以工作: bteq
      • 似乎我需要将 .bteq 文件调整为一个虚拟运行时文件,并将关键字“$dbpassword”替换为真实密码值,然后传递它而不是实际的 .bteq,然后删除该虚拟文件.
      • 我建议使用您的用户名和密码在您的主文件夹中保留一个 .tdlogon 文件,内容如下:.logon databaseName/username,password 从那里,您可以使用 .run file=$HOME/.tdlogon 开始您的 bteq 代码和您将登录。
      猜你喜欢
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      相关资源
      最近更新 更多