Oracle自动导入数据文件(类似bcp的功能)及问题记录SQL*LOADER-704,ORA-12504

本文介绍了如何使用Oracle SQL*Loader从大文件中自动导入数据,详细阐述了控制文件的配置,包括数据分隔符和空值处理。在实际操作中遇到SQL*LOADER-704和ORA-12504错误,通过调整tnsnames.ora文件和处理数据编码解决了问题。此外,还讨论了在Windows环境下通过CMD执行导入命令的方法。
摘要由CSDN通过智能技术生成

工作需求:将unl文件利用shell脚本导入到oracle数据库,这样就可以定期执行shell来导入数据库。

背景:unl文件大小700M,数据量125万条。因为数据量太大,所以不能全部insert,另外,要分开提交,不能一次全部提交,参数用rows来控制,后面会有解释。

数据格式:103096653999363@|#@|#04@|#4240@|#1426@|#翼城县德荣副食部(万村千乡)

oracle表格式与数据格式字段完全对齐

oracle需要写控制文件。

oracle控制文件sql.ctl

load data
infile '/home/nice/data.txt'
append
into table TABLE_TEST_INFO
fields terminated by '@|#'
trailing nullcols
(
	MERCH_ID,
	AREA,
	CODE,
	TEST1,
	TEST2,
	ADDRESS
)
其中append可以替换为

1) insert     --为缺省方式,在数据装载开始时要求表为空
2) append  --在表中追加新记录
3) replace  --删除旧记录(用 delete from table 语句),替换成新装载的记录
4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 bcpsqlcmd 导入数据,您需要遵循以下步骤: 1. 创建数据表:在 SQL Server 数据库中创建一个数据表,该表将用于存储导入的数据。 2. 准备数据文件:将要导入的数据保存到一个文本文件中,每行表示一条记录,字段值之间用分隔符分隔。 3. 确定分隔符:确定数据文件中用于分隔字段值的分隔符。 4. 使用 bcp 命令或 sqlcmd 命令导入数据:使用以下命令之一导入数据: - bcp 命令:使用 bcp 命令从数据文件导入数据到 SQL Server 数据库中的表中。该命令使用以下语法:bcp database.schema.table in datafile -S servername -U username -P password -c -t separator - sqlcmd 命令:使用 sqlcmd 命令从数据文件导入数据到 SQL Server 数据库中的表中。该命令使用以下语法:sqlcmd -S servername -d database -U username -P password -i scriptfile 在这些命令中,您需要替换以下参数: - database:要导入数据的数据库名称。 - schema:要导入数据的表所在的架构名称。 - table:要导入数据的表名称。 - datafile:包含要导入的数据的文件的路径和文件名。 - servername:SQL Server 实例的名称。 - username:连接到 SQL Server 的用户名。 - password:连接到 SQL Server 的密码。 - separator:数据文件中用于分隔字段值的分隔符。 以上是使用 bcpsqlcmd 导入数据的基本步骤和命令。您可以根据需要进行调整或添加其他参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值