我正在尝试分析Netezza服务器上存储的过程中使用的代码。
第一步是获取存储在进程中包含的定义/代码 - 这可以通过以下任一方法轻松完成:
使用系统视图
select
PROCEDURE,
PROCEDURESOURCE
from _v_procedure
where
PROCEDURE = 'MY_PROC'
;
或使用基表 [视图指向此表]
select
PRONAME,
PROSRC as PROCEDURESOURCE
from
DEFINITION_SCHEMA."_T_PROC" P
where
PRONAME= 'MY_PROC'
现在,一旦我对 PROCEDURESOURCE 列运行一些分析并尝试将此信息写出到表中,我总是收到以下错误:
错误:IBM Netezza SQL 不支持类型 'bytea'
复制此错误的简单方法是执行以下操作
create table MY_SCHEMA.TEST_TMP as
with rs as
(
select
PRONAME,
PROSRC
from
DEFINITION_SCHEMA."_T_PROC" P
where
PRONAME = 'MY_PROC'
)
select * from rs
我已经确定DEFINITION_SCHEMA中有一列。bytea 类型的 _T_PROC"(列名 = PROBIN(
但是我没有选择此列,所以我不确定为什么会收到此错误
任何人都可以帮助解决如何将 PROCEDURESOURCE 复制到新表中并绕过"bytea"错误的解决方法
谢谢
3 条建议: 1(有时"全部限制"技巧会有所帮助:在子查询中使用LIMIT ALL有什么好处? 2(或者,执行"创建外部表"并将数据放入文件中,然后执行另一条语句以将其从文件中读回 3(最后的猜测是,您可能能够将列显式转换为更良性的数据类型(Varchar((或类似类型(