在 Teradata 中从 SQL 获取服务器的 IP 地址

Get the IP address of the server from SQL in Teradata

我想查看当前连接,根据环境验证配置是否正确。我的意思是,我有一个 ETL,我想确保数据库配置指向正确的服务器(dev、QA 或 prod)

如何从 Teradata 中的 SQL 获取服务器的 IP 地址或主机名?

由于 Teradata 系统可能有多个节点,因此系统会分配到一系列 IP 地址。并且主机名在您的连接字符串中使用,因此应该提前知道。

没有从系统 table 获取该信息的内置方法,但创建 SQL-UDF 很容易:

FUNCTION syslib.#servername ()
RETURNS VARCHAR(30)
LANGUAGE SQL
CONTAINS SQL
DETERMINISTIC
RETURNS NULL ON NULL INPUT
SQL SECURITY DEFINER
COLLATION INVOKER
INLINE TYPE 1
RETURN 'dev';

GRANT EXECUTE FUNCTION ON syslib.#servername TO PUBLIC;

因为它存储在 syslib 中,所以可以在没有限定名称的情况下使用:select servername()