Oracle如何通过脚本将数据入库。controlfile文件解析。

如果外系统发来的数据,要直接入库,可以提前约定好表结构,以及接收的数据文件格式:

-- Create table
create table SYS_AUTOBATCH_LOG_TEST
(
	logid NUMBER(32) not null,
	taskcode VARCHAR2(64 CHAR),
	taskname NVARCHAR2(64),
	starttime DATE,
	endtime DATE,
	exeresulti VARCHAR2 (10 CHAR),
	createtime TIMESTAMP(6) default SYSDATE
)
tablespace TB_SAMS 
	pctfree 10
	initrans 1
	maxtrans 255
	storage
	(
		initial 64K
		next 1M
		minextents 1
		maxextents unlimited
	);
-- Addcomments tothetables
comment on table SYS_AUTOBATCH_LOG_TEST
	is '批量自动化任务日志表';
-- Add comments to the columns
comment on column SYS_AUTOBATCH_LOG_TEST.logid
	is'主键';
comment on column SYS_AUTOBATCH_LOG_TEST.taskcode
	is '任务CODE';
comment on column SYS_AUTOBATCH_LOG_TEST.taskname
	is '任务名';
comment on column SYS_AUTOBATCH_LOG_TEST.starttime
	is '开始间间';
comment on column SYS_AUTOBATCH_LOG_TEST.endtime
	is '结束时问';
comment on column SYS_AUTOBATCH_LOG_TEST.exeresult
	is '执行结果,s-执行成功,F-执行失败';
comment on column SYS_AUTOBATCH_LOG_TEST.createtime
	is '创建时间';
-- Create/Recreate primary,unigue and foreien key constraints
alter table SYS_AUTOBATCH_LOG_TEST
	add constraint SYS_AUTOBATCH_LOG_TEST_PK1 primary key(LOGID)
	using index
	tablespace TB_SAMS_IDX
	pctfree 10
	initrans 2
	maxtrans 255
	storage
	(
	initial 64K
	next 1M
	minextent 1
	maxextents unlimited
	);

要入库的文件数据格式如下:sams_select.dat
在这里插入图片描述
编写脚本

#!/bin/sh

script=/sams/bbb/
sqlldr userid=${SAMS_DBURL} control=${script}controlfile.ctl data=sams_select.dat log=log_file.log
# userid是数据库用户名和密码  SAMS/Sump_2020

这里使用到了一个很关键的文件,controlfile.ctl

LOAD DATA
INEILE sams_select. dat
REPLACE
INTO TABLE SYS_AUTOBATCH_LOG_TEST
FIELDS TERMINATED BY '|+|'
TRAILING NULLCOLS
(
LOGID "TRIM(:LOGID)",
TASKCODE,
TASKNAME ,
STARTTIME DATE "yyyy-MM-dd HH24:mi:ss",
ENDTIME DATE "yyyy-MM-dd HH24:mi:ss"
EXERESULT,
CREATETIME TIMESTAMP

# INEILE : 指定输入的文件
# REPLACE : 替换原表中的数据  另外还有APPEND , TRUNCATE等
# FIELDS TERMINATED : 指定以什么作为分隔,根据dat文件是 |+|
# TRAILING NULLCOLS:允许字段值为空。
# 括号内为表字段,注意如果是数字类型、时间类型是怎么转换的

入完库效果:
在这里插入图片描述
log_file.log
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45842494/article/details/130798479