如何在Teradata中使用环境变量来创建表和存储过程?

时间:2017-09-27 02:13:15

标签: sql stored-procedures teradata

我们有DEV,UAT和PRD环境。我们最近创建了20个新模式和120个表。假设,PO_DEV_SPD是数据库名称。我在这个架构下创建了表。现在,我想使用环境变量而不是数据库名称。比如$ SPDDB.MY_ACCOUNT。如何在创建表以及存储过程时使用此env变量。

更新:创建DDL时

CREATE MULTISET TABLE $SPDDB.tbl_employee
(
name VARCHAR(20),
id INT,
roll_no INT
)
PRIMARY INDEX (id, roll_no)

我可以在创建DDL / DML时使用shell脚本来使用env变量吗?

1 个答案:

答案 0 :(得分:0)

这是一个应该指向正确方向的例子。

BTQLOGLOGON的路径是虚构的,并不代表良好做法。替换为适合您的环境的路径以及您的环境强制执行的安全性参数。

#!/usr/bin/ksh
SPDDB='PROD'
BTQLOG='/var/opt/log/bteq.log'
LOGON='/var/opt/logon/bteq.con'
#
bteq <<EOBTQ > $BTQLOG 2>&1
.RUN file=${LOGON}

CREATE MULTISET TABLE $SPDDB.tbl_employee
(
name VARCHAR(20),
id INT,
roll_no INT
)
PRIMARY INDEX (id, roll_no);

.QUIT ERRORLEVEL;

EOBTQ
#
#
STATUS=$?
#
exit $STATUS