Netezza 中的 SQLEXT 函数错误

SQLEXT function error in Netezza

我试图在 Netezza 数据库的 Aginity 工具中 运行 跟随 SQL。

select SA1..GET_VALUE_TYPE(POID_DB)
FROM SA1.ACCOUNT_T LIMIT 100

我已经在 SA1 架构中的 Synonyms 下安装了 GET_VALUE_TYPE 函数。

但我遇到以下错误:

ERROR [HY000] ERROR: getDatabaseDetailbyOid: error retrieving database '2376379'

关于这个错误有什么线索吗

谢谢

您可以在 SQL 扩展工具包 at this link 中找到函数的文档。

SQL 扩展工具包中没有 GET_VALUE_TYPE 函数,尽管有 class 函数称为 "GET_VALUE_TYPE" 函数。各个函数的名称如 GET_VALUE_INT 和 GET_VALUE_VARCHAR,并且都需要两个参数。它们可以在上面链接的文档的 "Array Functions" 下找到。基于此,我认为您必须安装来自不同来源的功能。你的 GET_VALUE_TYPE 功能是做什么的?

您可以使用以下查询检查有关该函数的一些基础知识:

SELECT * FROM _V_FUNCTION where FUNCTION = 'GET_VALUE_TYPE';

分别用 "select version()" 和 "select regexp_version()" 检查您的 Netezza 版本和 SQL 扩展工具包版本,显示兼容级别。这样看起来不错。

在 Netezza 中,每个对象(table、数据库、用户、函数等)都有一个对象 ID (OBJID)。您显示的错误消息表明某些东西正在尝试查询有关 OBJID 为 2376379 的数据库的信息。如果您有适当的权限,您可以 运行 以下查询以查看是否存在具有该 OBJID 的对象, 看看是否如你所愿。

SELECT * FROM _V_OBJECT WHERE OBJID = 2376379;

您提到了同义词。它们只能为 tables 和视图创建,所以你能阐明你安装函数的位置的意思吗?

希望这能让您更接近解决方案。