Oracle命令行导入TXT文件教程

准备工作

  1. 数据文件示例(data.txt)
    格式:逗号分隔(支持自定义分隔符)

    101,John,IT
    102,Lisa,Sales
    103,David,HR
  2. 数据库目标表结构
    需提前创建与TXT列对应的表:

    CREATE TABLE employees (
       emp_id NUMBER,
       emp_name VARCHAR2(50),
       dept_name VARCHAR2(50)
    );

创建控制文件(关键步骤)

新建 load_data.ctl 文件,内容如下:

LOAD DATA
INFILE 'data.txt'        -- TXT文件路径
INTO TABLE employees     -- 目标表名
FIELDS TERMINATED BY ',' -- 列分隔符(可改为|、TAB等)
OPTIONALLY ENCLOSED BY '"' -- 文本引号(可选)
TRAILING NULLCOLS        -- 允许空列
(
  emp_id,                -- 列顺序与TXT文件一致
  emp_name,
  dept_name
)

*执行SQLLoader命令**

在命令行中运行(根据系统调整路径):

sqlldr userid=username/password@database_service_name 
       control=load_data.ctl 
       log=load_results.log
  • 参数说明
    • username/password:数据库账号/密码
    • @database_service_name:数据库服务名(如ORCL)
    • control:控制文件路径
    • log:导入日志文件(必查)

验证结果

  1. 检查日志文件(load_results.log)
    查看关键条目:

    Table EMPLOYEES:
      3 Rows successfully loaded.
      Commit point reached - logical record count 3
  2. 查询数据库确认

    SELECT * FROM employees;

常见问题解决

问题现象 解决方案
ORA-01722: 无效数字 控制文件中指定列数据类型转换
文件路径错误 使用绝对路径(如:/home/user/data.txt)
权限不足 授予用户INSERT表权限
中文乱码 在控制文件首行加 CHARACTERSET UTF8

高级技巧

  1. 跳过文件首行行)
    在控制文件中添加:

    LOAD DATA
    INFILE 'data.txt'
    SKIP 1  -- 跳过第1行
    ...
  2. 日期格式转换
    若TXT含日期列,在控制文件指定格式:

    (hire_date DATE "YYYY-MM-DD")

引用说明

  • 本文方法基于Oracle 12c至19c版本验证,核心工具为官方提供的SQL*Loader。
  • 参考文档:
    Oracle Database Utilities Guide – SQLLoader*章节
    Oracle官方支持文档ID 245263.1

操作时请确保:

  1. 数据库服务名正确
  2. TXT文件与控制文件列定义严格匹配
  3. 日志文件无ORA-错误提示

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5674.html

(0)
酷番叔酷番叔
上一篇 2025年6月27日 02:55
下一篇 2025年6月27日 03:21

相关推荐

  • CAD命令栏看不清?放大操作必须懂!

    3种专业可靠的放大方法(适用AutoCAD 2009-2024版本)▶ 方法1:通过界面设置直接调整(推荐新手)将鼠标悬停在命令栏左侧边缘 >> 符号 处单击出现的 “拖动条”图标(⤢ 或 ▤)向上拖动至合适高度(通常3-5行为宜)释放鼠标完成调整注:此方法同步调整命令窗口与文本窗口▶ 方法2:修改……

    2025年6月26日
    2700
  • 如何查看所有端口占用情况?

    在Windows操作系统中,使用CMD命令查看端口是网络管理和故障排查的必备技能,以下详细介绍几种常用方法,所有操作均需在命令提示符(CMD) 中执行,请按Win+R输入cmd打开命令提示符(建议以管理员身份运行),命令:netstat -ano作用:列出所有活动的网络连接和监听端口,并显示对应的进程ID(PI……

    2025年6月17日
    3300
  • Vim如何安全退出CentOS?

    核心退出命令(在Normal模式下操作)保存并退出输入 :wq 后按回车(Enter键)等效命令::x(仅当文件修改后才保存)不保存强制退出输入 :q! 后按回车(丢弃所有修改并退出)仅退出(未修改时)输入 :q 后按回车(若文件无修改则直接退出;有修改时会报错提示)操作步骤详解确认当前模式若在插入模式(显示……

    2025年7月12日
    2700
  • 启动分离能解决卡顿吗?

    在Unix/Linux系统中,让命令在后台执行是提高工作效率的关键技巧,尤其适用于运行耗时任务(如数据处理、编译程序)或需要断开终端后仍保持运行的场景,以下是详细方法及注意事项,符合系统规范并兼顾安全性:基础方法:使用 & 符号在命令末尾添加 & 符号,直接将其放入后台:ping example……

    2025年7月10日
    2700
  • 如何快速打开Unix/Linux/macOS命令行?

    Linux发行版(图形界面)Ubuntu/Debian系方法1:快捷键Ctrl + Alt + T 直接打开终端窗口,方法2:应用菜单点击屏幕左上角 Activities → 搜索栏输入 Terminal → 点击图标启动,方法3:右键菜单桌面空白处右键 → 选择 Open Terminal(部分桌面环境支持……

    2025年7月10日
    2800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信