我试图对Informix数据库执行一条合并语句,如下所示:
MERGE INTO aa_rec AS dest
USING (SELECT '123456' AS id, '111-222-3333' as phone, '' as phone_ext, 'CELL' as aa FROM sysmaster:'informix'.sysdual) AS src
ON dest.id = src.id AND dest.aa = src.aa
WHEN NOT MATCHED THEN
INSERT (d
在Informix中执行存储过程有问题。我正在做一个简单的查询,它不起作用。这是一个查询:
SELECT
first 1 field1,
date1
FROM
historia_t
WHERE
field3 = 1
AND field4 = 1
AND date1 BETWEEN (CURRENT - 1 UNITS YEAR) AND CURRENT
ORDER BY
field1 desc
如果我在DbVisualizer中执行查询,我没有任何问题,但是如果我在Informix中执行查询(使用存储过程),
我有一个表(在informix中),其中存储了两列:empId和status (Y/N)。还有一些其他脚本,它们在运行时会根据特定条件更新这些employeeIDs的状态。手头的任务是,用户提供包含employee-ID的文件的路径。我有一个脚本,然后查看这个文件并执行"load from user_supplied_file insert into employeeStatusTable“。此文件中提到的所有employeeIDs都将插入到此表中,状态为'N‘。真正的问题是,用户提供的文件可能包含已存在于表中的employeeId,且状态已更新为'Y‘(通过其他脚本或
我有两个大的数据框,比如df1和df2。在给定特定条件的情况下,我想向df2添加一个值。 df2包含pepole即: > df2
ID Age Gender
1 1 20 M
2 2 30 K
3 3 40 M
4 4 60 M 然后我有df1,它包含大量的信息,每个年龄从0到100和每个性别都有一个数字。我需要找到我个人的korrekt号码。假设我在30岁的时候抬头看 > df1[df1[,'V10'] == 30,]
V5 V10 V12
31 K 30 5.91
151 M 30
当我尝试通过JDBC向Informix文本列插入一些数据时,我遇到了问题。在ODBC中,我可以像这样简单地运行SQL:
INSERT INTO test_table (text_column) VALUES ('insert')
但是这在JDBC中不起作用,我得到了错误:
617: A blob data type must be supplied within this context.
我搜索了这样的问题,发现了2003年的消息:
我将代码更改为使用PreparedStatement。现在它适用于JDBC,但是在ODBC中,当我尝试使用PreparedStatement时
我正在尝试为Informix服务器编写带有ADD COLUMN子句的“可重用”SQL脚本。通常,我只能运行一次,因为之后该列已经存在,不能再添加。我不能简单地添加DROP column作为前一条语句,因为它会在第一次执行时失败。我需要像DROP COLUMN IF EXISTS这样的东西,但与删除其他SQL实体不同,它不适用于列。
我可以通过以下方式查询系统表中是否存在该列:
SELECT c.colname
FROM "informix".systables AS t
JOIN "informix".syscolumns AS c ON t.tabid
我需要将具有to _DATE函数的WHER-语句从Oracle转换到Informix 10。不幸的是,我无法直接访问Informix实例,只能通过执行SQL,这使得尝试和错误的测试非常不方便。
无论如何,在Oracle中,它看起来是这样的(由于兼容性原因,没有NVL2-函数):
select * from mytable
where date_column >= (CASE WHEN date_column is not null THEN to_date('13.02.2014 23:00:00', 'dd.mm.yyyy hh24:mi:ss') EL
不小心,我在informix中使用dbaccess session执行了这个查询。
Delete from table #without where condition
意识到我的错误,我应该使用TRUNCATE,我做了另一个愚蠢的事情。
我终止了dbaccess会话。但是该表是以独占方式锁定的,我无法对该表执行任何操作。
我可以执行哪些步骤来移除锁并对表执行truncate。
1) Restart Informix server
2) onmode -z <sessionid> # Does not work.
I se
我有一个表,它有一个列,该列上有一个唯一约束。
现在我们发现我们需要消除这个不正确的约束。
约束未显式命名。
我可以通过下面的查询获得有问题的约束的名称:
SELECT
s.constrname
FROM informix.sysconstraints s
INNER JOIN informix.systables t ON t.tabid = s.tabid
INNER JOIN informix.syscolumns c ON c.tabid = t.tabid
WHERE t.tabname = 'the_table'
AND c.colname =
让我解释一下..。
当将记录插入到informix表中时,如果我为其中一个列指定一个值,无论值是什么,它总是会抛出以下错误(这一小段信息是黄金的,我花了一段时间才弄清楚)。该列为char (4)。在字段中没有唯一的键索引,我可以分辨(使用松鼠)。表中还有许多其他列,我正在设置值,但没有这个问题。
ERROR [HY000] [Informix][Informix ODBC Driver][Informix]ISAM error: duplicate value for a record with unique key.
或
Error: Could not insert new row -
如何使用GROUP BY on Informix Date数据类型on month选择记录?像这样:
SELECT COUNT(*)
FROM db_table
WHERE my_date.year = 2012
GROUP BY my_date.month
我可以像这样使用吗?
GROUP BY MONTH(my_date)
我不知道Informix中是否存在此函数。目前我无法访问服务器进行验证。
顺便说一下,我使用的是一个有点老的版本,版本10。在版本的文档中,它描述了以下时间函数:
You can use the time functions DAY, MDY, MONTH, WEEKD
我按照示例获得了插入记录的最后一个id,问题是我的应用程序有时会返回0。我试过使用来测试它
INSERT INTO ...
execute function sysmaster:yieldn(1); // wait 1 second
select dbinfo('sqlca.sqlerrd1') from informix.systables where tabid=1;
总是返回0。等待1秒只是为了模拟我的应用程序中的流量。
有人能解释一下dbinfo('sqlca.sqlerrd1')是什么意思吗。
PS:
我试过IBM 的例子
当我执行:
insert i
我试图在informix中创建一个示例存储过程,但出现了语法错误。有人能说出这是怎么回事吗?
drop procedure if exists sample();
create dba procedure sample()
update employee set last_name="Tietz" where emp_id = '2537';
end procedure;
谢谢
在esql程序中,当sql失败并生成异常时,我希望打印生成异常的SQL。为此,我需要了解如何获得先前执行的SQL。我正在运行Informix11.5。我试过以下几种方法,但都没有用
select * from sysmaster:sysconblock where cbl_sessionid in (select dbinfo('SessionId') from sysmaster:syssqlstat);
SELECT scs_sqlstatement FROM sysmaster:syssqlcurses WHERE scs_sessionid in (select db