我试图在Aginity
数据库中的Netezza
工具中运行以下SQL。
select SA1..GET_VALUE_TYPE(POID_DB)
FROM SA1.ACCOUNT_T LIMIT 100
我在GET_VALUE_TYPE
架构中的同义词下安装了SA1
个函数。
但我收到以下错误:
错误[HY000]错误:getDatabaseDetailbyOid:错误检索数据库' 2376379'
是否有任何关于此错误的线索
由于
答案 0 :(得分:1)
您可以在SQL Extension Toolkit at this link中找到这些函数的文档。
SQL扩展工具包中没有GET_VALUE_TYPE函数,尽管有一类函数称为“GET_VALUE_TYPE”函数。各个函数的名称如GET_VALUE_INT和GET_VALUE_VARCHAR,都需要两个参数。它们可以在上面链接的文档的“数组函数”下找到。基于此,我认为你必须安装一个来自不同来源的功能。你的GET_VALUE_TYPE函数做了什么?
您可以使用以下查询检查有关该功能的一些基础知识:
SELECT * FROM _V_FUNCTION where FUNCTION = 'GET_VALUE_TYPE';
分别使用“select version()”和“select regexp_version()”检查Netezza版本和SQL Extension工具包版本,显示兼容级别。所以看起来不错。
在Netezza中,每个对象(表,数据库,用户,函数等)都有一个对象ID(OBJID)。您显示的错误消息表示正在尝试查询有关其OBJID为2376379的数据库的信息。如果您具有适当的权限,则可以运行以下查询以查看是否存在具有该OBJID的对象,并查看是否这是你所期望的。
SELECT * FROM _V_OBJECT WHERE OBJID = 2376379;
你提到了SYNONYM。它们只能为表格和视图创建,所以你能澄清你在安装函数的位置意味着什么吗?
希望这能让您更接近解决方案。