Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是teradata BTEQ中的echo vallid语法吗_Teradata_Sql Scripts - Fatal编程技术网

是teradata BTEQ中的echo vallid语法吗

是teradata BTEQ中的echo vallid语法吗,teradata,sql-scripts,Teradata,Sql Scripts,任何人都可以解释我下面的bteq代码 这个脚本有效吗 exec 1> $CODE/edlr2/logs/AGP_MBR_BTEQ_CSA_MBR_STG_LOAD_$(date +"%Y%m%d_%H%M%S").log 2>&1`echo "script file =" $0 PARM_FILE=$1 echo "parm file= "$PARM_FILE.parm . $CODE/edlr2/scripts/$PARM_FILE.parm select name fro

任何人都可以解释我下面的bteq代码

这个脚本有效吗

exec 1> $CODE/edlr2/logs/AGP_MBR_BTEQ_CSA_MBR_STG_LOAD_$(date +"%Y%m%d_%H%M%S").log 2>&1`echo "script file =" $0 PARM_FILE=$1 echo "parm file= "$PARM_FILE.parm . $CODE/edlr2/scripts/$PARM_FILE.parm select name from customer;
有人能解释一下这个代码吗参见:

exec 1>$CODE/edlr2/logs/AGP\U MBR\U BTEQ\U CSA\U MBR\U STG\U LOAD\U$date+%Y%m%d\UH%m%S.log

这会写入日志文件

2>&1 `echo "script file =" $0 PARM_FILE=$1 echo "parm file= "$PARM_FILE.parm . $CODE/edlr2/scripts/$PARM_FILE.parm select name from customer;
2> &1将文件描述符2指向上面1已经指向.log文件的位置

然而,看起来你在上面的某个地方错过了一个结束的坟墓,因为你在echo之前开始了一个坟墓,但从来没有关闭它。所以我认为这个脚本是无效的。但是我也不知道如何设置数据库来评估其余的是否有效。除非您能提供有关文件设置和运行方式的具体错误和信息,否则很难为您提供帮助

其他信息:exec将在某个位置运行脚本,因此部分:

echo "script file =" $0 PARM_FILE=$1 echo "parm file= "$PARM_FILE.parm . $CODE/edlr2/scripts/$PARM_FILE.parm select name from customer;
实际上是运行命令脚本并将其记录到日志文件中。它将输出并运行如下内容:

script file=/var/somefile
parm file=/var/someparms.parm
. /var/anotherparmfile.parm select name from customer;

实际上,它既不是unix脚本,也不是一些代码,也不是bteq可以使用的东西

我的猜测是,你的“脚本”看起来像这样,因为打字错误而忽略了孤独

exec 1> $CODE/edlr2/logs/AGP_MBR_BTEQ_CSA_MBR_STG_LOAD_$(date +"%Y%m%d_%H%M%S").log 2>&1
echo "script file =" $0
PARM_FILE=$1 
echo "parm file= "$PARM_FILE.parm 
. $CODE/edlr2/scripts/$PARM_FILE.parm select name from customer;
正如@Xander已经猜到的,它会将输出重定向到日志文件,打印有关脚本和日志文件名的信息,然后使用一些参数执行脚本$PARM_file.PARM

进一步猜测,由于日志文件的名称中提到了BTEQ,因此.parm脚本BTEQ可用于执行作为参数传递给它的SQL命令

bteq需要一个登录命令。如果将其添加到.parm脚本中,在连接的参数之前,并传递给bteq,您可能会得到一些有意义的完整响应

要知道,;最后将永远不会传递给脚本。shell将把它作为命令结束标记。而.parm脚本必须添加;也无法构造有效的SQL命令


为什么使用点命令来执行名为.parm的脚本超出了我的想象。

寻求调试帮助的问题此代码为什么不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。我不理解此代码,它是由其他人编写的。你能解释一下这里发生了什么吗?这不是BTEQ脚本,它是一个shell脚本,可能创建了一个用BTEQ lateris echo BTEQ脚本命令提交的脚本,或者它是linux命令。它在这里有效吗?我可以在bteqis echo bteq脚本命令上运行这个查询吗?或者它是linux命令。Echo是许多语言和系统中的一个常用术语,在这种情况下,它看起来是一个bash/terminal命令,因为它与1>和2>&1一起使用,而bteq不解析它?如果我跑this@XYZ不,所有回显都将由终端运行。我更新了我的答案。