问题标签 [informix]

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 投票
5 回答
17134 浏览

sql - Oracle SQL - 解析名称字符串并将其转换为首字母和姓氏

有谁知道如何把这个字符串: "Smith, John R"
变成这个字符串: "jsmith" ?

我需要使用 lower() 将所有内容小写
查找逗号的位置并跟踪它的整数位置值
获取该逗号之后的第一个字符并将其放在字符串前面
然后获取整个姓氏并将其粘贴在第一个首字母之后。

旁注 - instr() 函数与我的版本不兼容

感谢您的帮助!

0 投票
1 回答
2771 浏览

database - Informix 中的数据库别名

在 Informix 中,我可以运行使用其他数据库的 SQL 语句:

我想“联合”两个数据库,但我想“一步一步”做。

首先,我想将所有数据从 other_db 移动到主数据库,并为 other_db = main_database 设置别名。这样我就有时间从所有语句中删除“other_db:”。

如何设置数据库别名?

0 投票
1 回答
3078 浏览

jdbc - Informix JDBC 时间戳字符串格式

我有 Informix 数据库,其时间戳字段定义为 YEAR TO SECOND。当我使用 JDBC rs.getString(column) 显示该字段时,它使用毫秒格式,因此该字段如下所示:

我希望它只使用 YEAR TO SECOND 字段。我设置环境变量:

但即使那样我也有几毫秒。使用 ODBC 的程序不显示毫秒。如何仅接收 TIMESTAMP 字符串“YEAR TO SECOND”?在我的程序中,如果字段是 TIMESTAMP,我可以检查元数据,然后剪切“.0”,但我认为应该有更简单的方法。

服务器版本:IBM Informix 动态服务器版本 11.50.TC2DE

客户端版本:IBM Informix JDBC Driver for IBM Informix Dynamic Server 3.50.JC3DE

编辑 如果我使用 getString(),我测试的所有其他 JDBC 驱动程序(Oracle 和 PostgreSQL)看起来都以毫秒为单位显示时间戳列。所以我使用了托德提出的解决方案。我检查元数据,如果列是时间戳,那么我使用 getTimestamp() 并对其进行格式化。

0 投票
2 回答
2081 浏览

informix - informix 是否具有等效的“物化视图”或 DB 表同步

问题: Informix 是否具有与 Oracle 的“物化视图”等效的构造,或者是否有更好的方法来同步跨数据库链接的两个表(不是数据库)?我可以自己写一个同步(被要求),但这似乎是在重新发明轮子。

背景:最近我们不得不拆分(DB 的一部分一个服务器,另一部分在另一台服务器上)一个整体 Informix 9.30 DB(Valent 的 MPM),因为 AppServer 和 DB 服务器的组合无法再处理负载。

在这样做时,我们必须拆分一个用户定义的表空间(KPI 存储库),该表空间以巨大的事实表和明确定义的维度表的星形模式排列。

不幸的是,一位电信公司经理决定将维度表(标准化、无数据冗余、无需编码)集中在一台机器上,从而使它们作为另一台机器上的 DB-link 的视图可用。这既慢又不稳定,因为如果视图用于子查询(可演示),它时不时会导致数据库服务器崩溃,在产品服务器上非常不酷

0 投票
4 回答
23138 浏览

sql - SQL nvl 等效 - 没有 if/case 语句 & isnull & coalesce

SQL 中是否有任何 nvl() 等效函数?

或者在某些情况下可以以相同方式使用的足够接近的东西?


更新:
没有 if 语句
没有 case 语句
没有 isnull
没有合并

0 投票
2 回答
6902 浏览

sql - 从 Informix Stored Proc 返回的数据源

我有一个 Informix 存储过程,它返回两列和多行。我可以很好地使用“EXECUTE FUNCTION curr_sess(2009,'SP')”,但是如何将结果放入临时表中。

编辑:我们在版本 10.00.HC5


测试 Jonathan Leffler 的想法并没有奏效。

工作正常。然后我做了

但是当我尝试

它不起作用,我收到“SPL 例程中的非法 SQL 语句”。错误。


curr_sess 的来源


编辑: sess_sort() 进行查找。

我试图将函数重写为一个查询。这是 next_sess:

IBM 的某个人给我发了电子邮件,并建议使用这样的东西:

但这仍然没有奏效。

0 投票
2 回答
6599 浏览

odbc - 如何使用 ODBC 从 Informix 中的 varchar 列中获取尾随空格

我无法从 Informix 数据库中的 varchar 列中获取尾随空格。

我创建了测试表,用一些尾随空格填充了它,但是它们没有被 SELECT 返回,而它们似乎存储在数据库中。

我得到了字段:

我测试的其他数据库:Oracle 和 PostgreSQL 返回带有尾随空格的 varchar 字段。我尝试了 RPAD() 但没有成功。有没有办法得到尾随空格?

服务器:IBM Informix 动态服务器版本 11.50.TC2DE

客户端:使用 ISA(HTML 页面源代码中没有空格)和 ODBC 驱动程序 3.50.TC3DE 进行测试

编辑 简单的 Python 测试程序(在 Windows 上使用 ActivePytnon 2.6 进行测试,您必须在最后几行更改连接字符串)

和结果:

Jython 中使用 JDBC 的类似程序:

  • 与本机 JDBC 驱动程序一起工作(不修剪尾随空格)
  • 对 JDBC-ODBC 桥不起作用(修剪尾随空格c)

资源:

结果(仅适用于 Informix):

0 投票
1 回答
11810 浏览

jdbc - 使用 JDBC 和 ODBC 将 TEXT 列插入 Informix 数据库的一致方法

当我尝试通过 JDBC 向 Informix TEXT 列插入一些数据时出现问题。在 ODBC 中,我可以像这样简单地运行 SQL:

但这在 JDBC 中不起作用,我得到了错误:

我搜索了这样的问题,发现了 2003 年的消息:

http://groups.google.com/group/comp.databases.informix/browse_thread/thread/4dab38472e521269?ie=UTF-8&oe=utf-8&q=Informix+jdbc+%22A+blob+data+type+must+be+提供+在+这个%22

我将代码更改为使用 PreparedStatement。现在它适用于 JDBC,但在 ODBC 中,当我尝试使用 PreparedStatement 时出现错误:

测试表是通过以下方式创建的:

用于测试两个驱动程序的 Jython 代码:

JDBC 或 ODBC 中是否有任何设置为两个驱动程序提供一个版本的代码?

版本信息:

  • 服务器:IBM Informix 动态服务器版本 11.50.TC2DE
  • 客户:
    • ODBC 驱动程序 3.50.TC3DE
    • 适用于 IBM Informix Dynamic Server 3.50.JC3DE 的 IBM Informix JDBC 驱动程序
0 投票
2 回答
682 浏览

sql - 分析查询

我正在寻找可以转换表中以下信息的单个查询

到这样的事情(给定时间范围 10 AM 到 10:15 AM 作为查询时段)

这只能使用 SQL 来完成吗?我正在使用 Informix 11.5 版

0 投票
2 回答
10317 浏览

sql - Informix 中的 group_concat

在 Informix 的 SQL 中查找将模拟 MySQLgroup_concat功能的查询。

MySQLgroup_concat所做的是创建组中所有成员的枚举。

所以数据如下:

和以下查询:

会产生:

在 Informix 中实现这一目标的最有效方法是什么?我们一定要使用存储过程吗?