AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[informix](dba)

Martin Hope
bomtirgom
Asked: 2022-07-30 04:05:29 +0800 CST

Informix 和 Lucene 分析器是否相似?

  • 0

这里讨论的分析器和 Lucene 分析器一样吗?我很困惑,因为它们中的大多数都显示出与 Lucene 分析器相似的属性,但博客文章没有提及 Lucene;相反,他们谈论的是 IBM 制造的名为 Informix 的东西。

https://www.ibm.com/docs/en/informix-servers/12.10?topic=analyzers-snowball-analyzer

我只想了解这 5 种类型的分析器:停用词、简单、标准、空白和雪球。它们的属性和Lucene一样吗?看起来他们是一样的,虽然他们的名字不准确。

informix elasticsearch
  • 1 个回答
  • 19 Views
Martin Hope
wha7ever
Asked: 2021-04-06 06:33:49 +0800 CST

Informix 列数据类型有哪些?

  • 3

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

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

datatypes informix
  • 2 个回答
  • 723 Views
Martin Hope
Christopher Karsten
Asked: 2020-12-29 01:12:00 +0800 CST

在 Informix 中将秒转换为 HH:MM:SS

  • 3

如何在 Informix 中将浮点数转换为 HH:MM:SS。我有一个运行持续时间为 1449.448520410 的列。我想将其转换为人类可读的格式。有很多方法可以解决这个问题,但我正在努力寻找一种方法。

我已经确定运行以下内容接近我想要的,但不包括时间:

select b.run_duration, floor(run_duration / 60) || ':' || lpad(mod(run_duration, 60), 2, '0') as run_duration_time from ph_task a, ph_run b where a.tk_id = b.run_task_id order by run_duration DESC

输出:

24:09

我想看到的是:

00:24:09

如何自定义我的 SQL 来提供它?

informix
  • 2 个回答
  • 356 Views
Martin Hope
Christopher Karsten
Asked: 2020-05-21 01:03:02 +0800 CST

使用字符作为总和值的 case 语句

  • 1

我有一个表,我试图在选择上提取单个返回值,表示通过使用总和计算器启用或禁用表上的压缩,列值压缩必须为否,并且 auto_compressed 必须等于禁用。

以下是表中的示例数据:

partnum          1048577
dbsname          rootdbs
owner            informix
tabname          sysdatabases
collate
dbsnum           1
compressed       No
auto_compressed  Disabled

partnum          1048577
dbsname          rootdbs
owner            informix
tabname
collate          TBLSpace
dbsnum           1
compressed       No
auto_compressed  Disabled

partnum          1048577
dbsname          rootdbs
owner            informix
tabname          sysdatabases
collate
dbsnum           1
compressed       No
auto_compressed  Enabled

partnum          1048577
dbsname          rootdbs
owner            informix
tabname          sysdatabases
collate
dbsnum           1
compressed       Yes
auto_compressed  Disabled

您可以使用以下内容进行测试:

create table test (
partnum         varchar(255),
dbsname         varchar(255),
owner           varchar(255),
tabname         varchar(255),
collate         varchar(255),
dbsnum          varchar(255),
compressed      varchar(255),
auto_compressed varchar(255));

insert into test values ('1048577','rootdbs','informix','','TBLSpace','1','No','Disabled');
insert into test values ('1048577','rootdbs','informix','sysdatabases','','1','No','Disabled');
insert into test values ('1048577','rootdbs','informix','sysdatabases','','1','No','Enabled');
insert into test values ('1048577','rootdbs','informix','sysdatabases','','1','Yes','Disabled');

我只想在一天结束时确定数据库中的所有记录是否压缩 = 否或 auto_compressed = 禁用,然后我想要一个返回说禁用或启用。

我把它放在一起,但我正在努力用值替换数字:

select
sum(case when Compressed != 'No' OR auto_compressed != 'Disabled' then 'Enabled' else 'Disabled' end) as Condition
from test

我在下面收到此错误消息:

367: Sums and averages cannot be computed for character columns.

我可以用数字替换这些值,它的工作原理如下:

select
sum(case when Compressed != 'No' OR auto_compressed != 'Disabled' then 1 else 0 end) as seven
from test

我相信我的案例陈述是不正确的,或者有更好的方法来做到这一点。我确实需要帮助,因为此时我的想法令人难以置信。

informix
  • 2 个回答
  • 308 Views
Martin Hope
MT.
Asked: 2020-03-22 11:39:56 +0800 CST

Informix JDBC 登录失败,本地登录成功

  • 0

我正在对我们有些旧的 Informix 服务器 (11.50.UC9GE) 上的“突然”问题进行故障排除。经过多年没有问题的运行(并且连接没有问题),今天突然我们无法远程连接到服务器。

当我在服务器上本地使用 dbaccess 并选择提示输入用户名/密码的连接方法时,凭据工作正常并且我能够建立连接。(注意我也可以故意输入无效的凭据,它会失败)。这使我相信我拥有的基本凭据很好/没有变化。

但是,当我们尝试远程连接到服务器时(通过 DB Visualizer 中的 JDBC 驱动程序),我们会收到以下错误:

An error occurred while establishing the connection:

Long Message:
Incorrect password or user com.informix.asf.IfxASFRemoteException: [email protected][MacBook-Pro.local] is not known on the database server.

Details:
   Type: java.sql.SQLException
   Error Code: -951
   SQL State: IX000

直到今天,这一直对我们有用 - 关于检查什么的任何想法?

jdbc informix
  • 1 个回答
  • 361 Views
Martin Hope
Christopher Karsten
Asked: 2019-08-26 08:15:37 +0800 CST

Informix 创建过程来查询记录,如果值不存在则使用 select 删除

  • 1

我正在尝试创建一个过程,该过程将查询表列以检索表名,并在 proc 中使用它来运行查询以进行选择(如果存在)。如果不存在,则从 systables_growth 表中删除行。

以下是我到目前为止的内容:

CREATE function test_sp();
DEFINE v_tab CHAR(255);
      FOREACH SELECT unique(tabname) INTO v_tab from systables_growth
        BEGIN
            SELECT * FROM v_tab;
            ON EXCEPTION IN (-206) -- If no table was found, delete record from systables_growth table
            DELETE from systables_growth WHERE tabname = 'v_tab'
            END EXCEPTION WITH RESUME;
        END
    END FOREACH
END function;

创建时收到以下语法错误:

CREATE function test_sp();
DEFINE v_tab CHAR(255);
FOREACH SELECT unique(tabname) INTO v_tab from systables_growth
BEGIN
SELECT * FROM v_tab;
ON EXCEPTION IN (-206) -- If no table was found, delete record from systables_growth table
#^
#  201: A syntax error has occurred.
#
DELETE from systables_growth WHERE tabname = 'v_tab'
END EXCEPTION WITH RESUME;
END
END FOREACH
END function;

我正在尝试定义一些逻辑来查询从表中提取的记录,以运行从提取的表名中进行选择的查询。如果选择说表不存在,那么我希望从表中删除该行。我不知道我是否使用了正确的逻辑。

我不希望该过程生成任何输出,我希望它保持沉默。

informix
  • 1 个回答
  • 385 Views
Martin Hope
Christopher Karsten
Asked: 2019-08-24 05:34:36 +0800 CST

Informix 触发器在插入前删除记录

  • 1

我正在尝试创建一个触发器,以便systables_growth在插入发生之前简单地从表中删除记录,基于date_added列上使用的 where 子句用于超过一定天数(在本例中为 15 天)的记录:

我正在使用以下内容:

CREATE TRIGGER systables_growth_clnup
INSERT ON systables_growth
DELETE FROM systables_growth
WHERE date_added < (CURRENT - 15 UNITS DAY)

执行上述操作时出现以下语法错误。

CREATE TRIGGER systables_growth_clnup
INSERT ON systables_growth
DELETE FROM systables_growth
#^
#  201: A syntax error has occurred.
#
WHERE date_added < (CURRENT - 15 UNITS DAY)
informix
  • 1 个回答
  • 449 Views
Martin Hope
stevec
Asked: 2019-08-21 15:39:01 +0800 CST

如何获取informix数据库中的所有表及其以GB为单位的大小?

  • 2

我可以粗略估计表格大小

SELECT tabname, (rowsize*nrows)/1024/1024/1024 AS tabsize 
FROM informix.systables 
ORDER BY tabsize DESC

有没有办法更准确地测量桌子的大小?

informix
  • 1 个回答
  • 4006 Views
Martin Hope
Christopher Karsten
Asked: 2019-07-31 01:26:32 +0800 CST

为范围 sql 之间的值创建列

  • 1

我想要实现的是基于范围之间的 num_extents 创建一个新列,并且只打印下面的表名。

这就是我所拥有的 [table1]:

在此处输入图像描述

这就是我想要的[table2]:

在此处输入图像描述

我使用了一个 case 语句,它允许使用以下内容获取范围之间的值:

select sum(case when num_of_extents between 0 and 9 then 1 else 0 end) as one,
       sum(case when num_of_extents between 10 and 19 then 1 else 0 end) as two,
       sum(case when num_of_extents between 20 and 29 then 1 else 0 end) as three,
       sum(case when num_of_extents between 30 and 39 then 1 else 0 end) as four,
       sum(case when num_of_extents between 40 and 49 then 1 else 0 end) as five,
       sum(case when num_of_extents >= 50 then 1 else 0 end) as six
from (
select
a.tabname,
count(*) num_of_extents,
sum( pe_size ) total_size_pg,
round(sum( pe_size*4),2) total_size_kb,
round(sum( pe_size*4/1024 ),2) total_size_mb,
round(sum( pe_size *4/1024/1024),2) total_size_gb
from systabnames a, sysptnext b, sysdatabases c
where a.partnum = b.pe_partnum
and a.dbsname = c.name
and a.dbsname = 'system'
-- a.tabname not like ' %'
group by 1
order by 3 desc, 4 desc
) a

上面的输出:

one    2
two    1
three  1
four   5
five   0
six    2

请忽略使用的列的命名,但我不想在范围之间求和,而是想打印出表的名称,而不是像 [table2] 中那样。如何更改我的 sql case 语句以在 informix 中执行此操作?

informix
  • 1 个回答
  • 1703 Views
Martin Hope
Christopher Karsten
Asked: 2019-07-23 02:21:55 +0800 CST

如何使用编号重命名informix中的索引

  • 0

我目前面临将索引重命名为数字的问题。

我尝试了以下方法:

RENAME INDEX 584_1973_tmp TO '584_1973';
RENAME INDEX 584_1973_tmp TO ' 584_1973';
RENAME INDEX 584_1973_tmp TO "584_1973";
RENAME INDEX 584_1973_tmp TO " 584_1973";

以上似乎都不起作用。是否可以在 Informix 中将索引重命名为数字?

informix
  • 1 个回答
  • 157 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve