问题标签 [nzsql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
301 浏览

sql - 通过 VBA 连接执行长查询

我正在设置一个自动化的 excel vba 工作簿,它通过查询提取数据,同时从 Excel 单元格中获取参数。

到目前为止,它已经在简单的查询和 SP 上工作,但我试图传递一个很长的查询,似乎 Excel 函数正在将字符串截断为 1043 个字符。

*该查询有 1426 个字符。

我对这个问题采取了 3 种不同的方法。

  1. 执行SQL存储过程(来自vba)而不是查询,问题是输入参数之一是一个id列表,它的长度是可变的,并且作为SP参数传递很长,所以它没有工作即使分配Varchar(Max)为类型。

  2. 将查询执行到新表中,并将完整表提取到 excel 中。虽然这确实有效,但需要手动更新 id 列表,因此它的功能不够。

  3. 将 SQL 字符串作为字符串连接直接传递给 Excel 函数,但它会引发我认为与字符串截断有关的错误。

我的代码如下:

在 SQL 中粘贴 B2 查询时得到的结果集:
/* ERROR [42000] ERROR: '...' 'Returns a part of the SQL string */

这里的字符串被截断为 1043 个字符。但是,我使用 pyodbc 从 Python 尝试了相同的方法,并且效果很好。

0 投票
1 回答
254 浏览

sql - Netezza 中可以传递 IN 子句的最大参数

在 Netezza 中,可以指定一个 IN 子句,如下所示:(就像 sql)

有谁知道您可以传递给 IN 的最大参数数量是多少?

我知道 Oracle 在 SQL 语句中最多允许 1,000 个 IN 列表值。

0 投票
1 回答
172 浏览

stored-procedures - 如何从 Netezza DEFINITION_SCHEMA 复制数据 [忽略 bytea 错误]

我正在尝试分析 Netezza 服务器上存储过程中使用的代码。

第一步是获取存储过程中包含的定义/代码 - 这可以通过以下任一方式轻松完成:

使用系统视图

或使用基表[观点指向此表]

现在,一旦我对 PROCEDURESOURCE 列进行一些分析并尝试将此信息写入表中,我总是会收到以下错误:

错误:IBM Netezza SQL 不支持类型“bytea”

复制此错误的简单方法是执行以下操作

我已经确定 DEFINITION_SCHEMA."_T_PROC" 中有一列 bytea(列名 = PROBIN)

但是,我没有选择此列,所以我不确定为什么会收到此错误

任何人都可以帮助解决如何将 PROCEDURESOURCE 复制到新表中并绕过“bytea”错误

谢谢

0 投票
1 回答
34 浏览

date - 如何从具有 YYYYMMDD 和 YYYYMM 格式的日期获取 YYYY 列作为 procces_year 和 MM AS process_month?在 Netezza sql

我在一个名为的列中有一些日期,例如 20190101 (YYYYMMDD) 和 201901 (YYYYMM) ,当我使用时process_date,我需要两列,一个名为process_year年份 (YYYY) 和process_month月份 (MM)的列

格式为 201901 (YYYYMM) 的日期取值“20”,与

取值 '19' 为相同的格式 201901 (YYYYMM)

0 投票
1 回答
265 浏览

sql - netezza:无法识别功能

我需要将 Netezza DB 中的数据提取到文本文件中。在这个过程中,我需要 在数据中存在\之前添加额外的内容。\ or "当我尝试使用下面提到的 sql 查询时,它正在工作。

但是当我在 shell 脚本中使用相同的查询时,它说函数不存在。

错误:函数“替换(varchar,未知)”不存在。无法识别满足给定参数类型的函数。您可能需要添加显式类型转换```

也试过翻译功能。已显示相同的错误。这是什么错误以及如何解决?

谢谢。

0 投票
1 回答
161 浏览

dynamic - 从 _V_SYS_COLUMNS 表中传递列名以在 Netezza 中创建动态选择查询

我需要为 Netezza 中的不同表创建一个动态选择查询

我使用以下查询获取任何表的列列表:

select * from _V_SYS_COLUMNS where TABLE_NAME='表名'

但我需要附加以逗号分隔的列'Column_Name'的所有值并将其存储到一个变量中:

var= col1,col2,....

然后我将在选择查询中传递这个 'var' 以针对不同的表运行它。

注意:我不能使用 Select * 因为所有列都不是必需的。

0 投票
1 回答
222 浏览

netezza - Netezza 从外部文件导入错误:不支持的外部表引用,无法导出形状

我正在从 Netezza 中的外部文件创建一个新表,但出现以下错误:

不受支持的外部表引用,无法派生形状

无论是尝试创建新表还是插入现有表,我都会遇到同样的错误。这是我正在使用的sql:

0 投票
0 回答
49 浏览

unix - 如何从 Netezza 表中提取数据到多个 linux 文件

我需要根据记录数从一个 Netezza 表中提取记录到多个文件中。

假设我有一个包含 10K 记录的表“A”,那么我需要在一个文件“001.dat”中提取 3K 记录,在另一个文件“002.dat”中提取另外 3K 记录,依此类推。所以,最后我应该有 4 个文件(3 个文件每个都有 3K 记录,1 个文件有 1K 记录)。

我可以在一个文件中提取所有 10K 记录,然后拆分该文件,但我需要在具有超过 400 亿条记录的表上执行此操作。因此,创建单个文件然后将其拆分为多个块将占用更多服务器空间。

所以,我想知道是否有任何命令行选项(与 nzsql 相关)或程序可以在多个 linux 文件中按顺序提取记录。通过这种方式,我可以在生成文件后立即压缩文件以释放空间。