Netezza中的SQLEXT功能错误

时间:2015-03-14 02:38:33

标签: sql netezza

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

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

我在GET_VALUE_TYPE架构中的同义词下安装了SA1个函数。

但我收到以下错误:

  

错误[HY000]错误:getDatabaseDetailbyOid:错误检索数据库' 2376379'

是否有任何关于此错误的线索

由于

1 个答案:

答案 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。它们只能为表格和视图创建,所以你能澄清你在安装函数的位置意味着什么吗?

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