温馨提示×

linux informix怎样导入数据

小樊
43
2026-09-05 03:27:52
栏目: 智能运维

在 Linux 下使用 IBM Informix 导入数据,常见方式有以下几种,按使用频率从高到低说明:


一、使用 dbimport(整库导入)

适用于:已有 dbexport 导出的数据库目录

dbimport dbname -i /backup/path

示例:

dbimport testdb -i /opt/informix/backup

说明:

  • testdb:要导入的数据库名
  • /opt/informix/backup:包含 testdb.exp 的目录

二、使用 load(表级导入,最常用)

适用于:从文本文件导入单表数据

1. 准备数据文件(如 data.unl

1|张三|25
2|李四|30

2. 使用 DB-Access 导入

dbaccess dbname <<EOF
load from '/path/data.unl'
insert into tabname;
EOF

或交互式:

dbaccess dbname
load from '/path/data.unl'
insert into tabname;

三、使用 External Table(外部表导入,推荐大批量)

CREATE EXTERNAL TABLE ext_tab
(
  id INTEGER,
  name CHAR(20),
  age INTEGER
)
USING (
  DATAFILES ("DISK:/path/data.unl"),
  FORMAT "DELIMITED"
);

INSERT INTO tabname SELECT * FROM ext_tab;

四、使用 onload(裸数据恢复,少用)

onload -d dbname -t tabname /path/tapefile

五、使用 sqlhosts + ESQL / JDBC

  • 程序方式(C / Java / Python)
  • 适合复杂业务逻辑

六、常见注意事项

  1. 字段分隔符

    • 默认 |
    • 可指定:
      FORMAT "DELIMITED" DELUXE
      
  2. 字符集

    export DB_LOCALE=zh_CN.utf8
    export CLIENT_LOCALE=zh_CN.utf8
    
  3. 权限

    • 文件需 Informix 用户可读
    • 数据库用户有 INSERT 权限

七、推荐方案

场景 推荐方式
整库迁移 dbimport
单表批量 load
大数据量 External Table

如果你能提供:

  • Informix 版本
  • 数据文件格式
  • 表结构

我可以给你可直接执行的命令示例

0