标签: informix

为什么 NOT IN 包含 NULL 的集合总是返回 FALSE/NULL?

我有一个查询(针对 Postgres 和 Informix),其中NOT IN包含一个子查询,该子查询在某些情况下返回NULL值,导致该子句(以及整个查询)无法返回任何内容。

理解这一点的最佳方式是什么?我认为NULL没有价值的东西,因此不希望查询失败,但显然这不是考虑NULL.

postgresql null query informix

21
推荐指数
1
解决办法
1万
查看次数

NVL 代表什么?

代表什么NVL?我说的是 Oracle 和 Informix(也许还有其他一些)函数用于从查询结果中过滤掉非 NULL 值(类似于COALESCE其他数据库)。

oracle informix functions

19
推荐指数
2
解决办法
2万
查看次数

如何删除名称不明确的程序?

我正在使用informix...

我不知道我是怎么做到的,但是我的数据库中有两个同名的过程。当我尝试用

DROP PROCEDURE myProc;
Run Code Online (Sandbox Code Playgroud)

然后我收到一条错误消息

ERROR: Routine (add_adr_trigger_row) ambiguous - more than one
routine resolves to given signature.
Error Code: -9700
Run Code Online (Sandbox Code Playgroud)

我怎样才能放弃这些程序?

stored-procedures informix

13
推荐指数
1
解决办法
6782
查看次数

SQL Server --> Informix DB 链接服务器

经过大约 3 天的尝试,我无法创建从 SQL Server 2016 到 Informix 11.5 的链接服务器。我没有在其他版本(2008R2 等)上尝试过这个,因为我想先在测试环境中设置连接。

我做了什么

1) 将 IBM Informix指令与 OLE DB 提供程序一起使用,在其中我收到以下错误(无论我是否在提供程序字符串中使用 DNS):

无法为链接服务器“UCCX”初始化 OLE DB 提供程序“Ifxoledbc”的数据源对象。链接服务器“UCCX”的 OLE DB 提供程序“Ifxoledbc”返回消息“EIX000: (-23197)”数据库区域设置信息不匹配”(Microsoft SQL Server,错误:7303)

DB Locale 是 en_US.57372

2)如本博客所述,使用 Microsoft OLE DB Provider for SQL Server返回错误:

命名管道提供程序:无法打开与 SQL Server 的连接。链接服务器 UCCX 的 OLE DB 提供程序 SQLNCLI11 返回消息“登录超时已过期” 链接服务器 UCCX …

sql-server linked-server informix sql-server-2016

9
推荐指数
1
解决办法
8437
查看次数

鉴于以下规则,我应该如何最好地设计表和关系?

在典当行业务中,客户典当、出售或购买物品。每当客户典当、出售或购买物品时,就会创建一份指定客户信息、物品以及条款和条件的合同。

每个合同最多允许 6 个项目。如果超过 6 个,则必须将它们拆分为单独的合同。此限制的原因是因为每个打印表格只能存在一个唯一的合同。该表单为 8.5 x 5.5 英寸(半页大小),因此每个表单上只能容纳 6 个项目描述。从法律上讲,我们不能为同一份合同提供第 1 页(共 2 页)。

属于合同的所有项目都分配有批次序列号。这个批号也恰好是合同号。无论是典当、买卖合约,手数都会增加。每种类型的合同都将维护自己的收据序列号。可视化一个单独的典当合同垫,右上角有一个收据编号,一个单独的购买垫和一个单独的销售垫。

买卖是最终的!

但是,客户可以为其活跃的典当支付利息,在这种情况下,客户向收银员提供其原始收据的副本以及利息支付。然后,针对相同的典当物品(即具有相同的批号)发出新的收据,显示新的到期日,而原始或之前的收据被取消并被收银员归档。

当客户赎回他们的典当时,不会发出新的收据。顾客在收据上签字,说当典物品已退还给他们,收据被收银员取消并归档。

当其他客户典当物品或支付利息时,新的收据被写入并提供给客户。

编辑:如果典当行不为每笔利息支付提供新的收据,而只是用支付利息的日期、金额和新的到期日更新原始合同,那么我们就不会出现并发症!但是,我们有一个典当收据编号,有时会增加,有时不会增加,这取决于对每个典当进行的交易类型。

以下是一段时间内典当交易的示例:

    CUSTOMER   TRANSACTION DATE/TIME   TRANSACTION TYPE     RECEIPT#
    --------   ---------------------   ----------------     --------

    Frank      Oct-28-2012,  9:00 am   New Pawn, Lot#501      P12345
    Mark       Oct-28-2012,  9:05 am   New Pawn, Lot#502      P12346
    Jeff       Oct-28-2012,  9:20 am   New Pawn, Lot#503      P12347

    ...
    (several other new pawns, which increment the lot and receipt numbers, and  
     interest payments which only increment the receipt numbers.)

    Mark       Nov-26-2012, …
Run Code Online (Sandbox Code Playgroud)

database-design informix

6
推荐指数
1
解决办法
1227
查看次数

集群索引是否比预排序加载文件和创建非集群索引提供更多好处?

Informix 11.70.TC4DE:

CREATE TABLE cluster_tbl
    (
fk_id INT,
data CHAR(2048)
    );

LOAD FROM "presorted.ld" INSERT INTO cluster_tbl;

CREATE UNIQUE CLUSTER INDEX cl_idx ON cluster_tbl(fk_id);
Run Code Online (Sandbox Code Playgroud)

{###}

CREATE TABLE noncluster_tbl
    (
fk_id INT,
data CHAR(2048)
    );

LOAD FROM "presorted.ld" INSERT INTO noncluster_tbl;

CREATE UNIQUE INDEX ncl_idx ON noncluster_tbl(fk_id);
Run Code Online (Sandbox Code Playgroud)

{###}

UPDATE STATISTICS;
Run Code Online (Sandbox Code Playgroud)

我的理解是,集群索引本质上与对加载文件进行预排序、将其插入表中并为外键列创建索引相同。

我创建了两个表,每个表都加载了 200 万行相同的数据,并按外键预先排序。但是,一个表在 fk_id 上有一个聚簇索引,另一个表在 fk_id 上有一个非聚簇索引。

与具有非集群索引的相同表/数据相比,在维护或访问具有集群索引的表中的数据时,树结构或额外开销是否有任何差异?

index clustered-index informix

5
推荐指数
1
解决办法
1062
查看次数

Informix DB 导出到 Microsoft SQL Server 2016

我有一个 Informix 数据库和一个 Microsoft SQL Server 2016。我的任务是转储整个 Informix 数据库并将其导出到 Microsoft SQL Server 数据库。我安装了 Informix SDK 4.5。我还安装了 32 位/64 位的 ODBC 驱动程序。连接工作正常。

ODBC 驱动程序

我在 中链接了 Informix 服务器Microsoft SQL Server Management Studio,但无法获取表信息,因此我在 IBM 文档中找到了解决方法。

链接的 Informix 服务器

现在我想尝试使用Import and Export Data (64-bit). 我选择了数据源作为IBM Informix OLE DB Provider

数据目的地是 SQL Server Native Client 11.0

作为测试导出,我选择了一些表。表映射对我来说很好

下一步显示了错误的类型转换,但我不知道为什么。

然后我 Run immediatly

[Source Information]
Source Location : sospos@sosposdbtest
Source Provider : Ifxoledbc.4
Cannot locate the mapping file to map the provider types to SSIS types …
Run Code Online (Sandbox Code Playgroud)

sql-server export informix

5
推荐指数
1
解决办法
2265
查看次数

过滤存储过程结果 (Informix)

IBM Informix 动态服务器版本 11.50.UC5XA。

我有一个 Informix 数据库。该数据库包含一个名为“sp_agent_details”的存储过程,它获取两个日期时间参数。该存储过程产生大约 27 列,我只需要其中的几列用于报告。我尝试这个语法:

select AGENT_NAME, AGENT_LOGIN_ID from 
       TABLE(sp_agent_detail('2014-02-04 04:00:00', '2014-02-04 23:00:00'))
Run Code Online (Sandbox Code Playgroud)

结果出现这样的错误:

java.sql.SQLException: Illegal SQL statement in SPL routine.
Run Code Online (Sandbox Code Playgroud)

接下来我尝试这个语法:

select AGENT_NAME, AGENT_LOGIN_ID from 
       TABLE(MULTISET{sp_agent_call_summary 
    ('2014-02-04 04:00:00', '2014-02-04 23:00:00')})
Run Code Online (Sandbox Code Playgroud)

结果:

 java.sql.SQLException: Function (informix.sp_agent_call_summary) 
returns too many values.
Run Code Online (Sandbox Code Playgroud)

然后我尝试了这个:

select AGENT_NAME, AGENT_LOGIN_ID from 
   TABLE(sp_agent_detail('2014-02-04 04:00:00', '2014-02-04 23:00:00'))
   (AGENT_NAME, AGENT_LOGIN_ID, other columns that are returned by SP)
Run Code Online (Sandbox Code Playgroud)

结果:

java.sql.SQLException: Illegal SQL statement in SPL routine.
Run Code Online (Sandbox Code Playgroud)

stored-procedures informix

4
推荐指数
1
解决办法
7059
查看次数

从 Informix 元数据中提取同义词和序列

我们正在将 Informix 数据库迁移到 Oracle。请帮助我们使用查询从 Informix 元数据中提取同义词和序列。

informix

2
推荐指数
1
解决办法
1365
查看次数

有哪些不同的 Informix 列数据类型?

我正在编写一个查询,我需要知道一列是否属于“BLOB”类型的列。根据本文档, 41 是“BLOB”类型的列的数量,一般来说。但是,当我查询syscolumns表时,我看到存储 BLOB 数据的列实际上具有 297 的值,就我而言。上面链接的那个页面甚至在其页面上的任何地方都没有数字“297”。我找到了另一页,标题为“数据类型常量”,但在这里,数字“297”甚至没有出现在页面上的任何地方。

文档的数据类型列表似乎不完整。Informix 中是否有(更多)完整的列类型列表?

datatypes informix

2
推荐指数
1
解决办法
234
查看次数