在 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()
我想查看当前连接,根据环境验证配置是否正确。我的意思是,我有一个 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()