sql的ctl保存格式应该是什么

sql的ctl保存格式应该是什么,第1张

SQL 的 CTL 保存格式应该是 SQL 脚本格式,以 .sql 后缀中型名,也就是将卖慧猜 SQL 语句保存为文本文件,例如 SELECT * FROM table_name WHERE... 之类的语句,每条语句一行,以碧察分号结尾,这样的格式是使用 SQL 语句最普遍的格式。

说明:当CSV文件数据量很大时,我们可以使用cmd命令方法导入,此方法速度十分快,具体方法如下:

工具:Oracle ,sqlldr命令

1、建立一个文件夹,将csv文件,放入此文件夹。

如本文示例中文件夹路径:D:\配唯码LZL

2、在所要导进的oracle数据库建立表,此处我们建立表名为TEMP_TNB 空表。

注意事项:oracle表字段要和CSV文件对应

3、在第1步中,文件夹下,建立一个ctl文件。

使用文本编辑器(记事本)即可,然后将后缀txt改为ctl,在本示例中,我建立一个名为input.ctl的文件,内容参考,如下:

在这里插入图片描述

代码内容:

options (skip=1,rows=1000)

LOAD DATA

CHARACTERSET AL32UTF8

INFILE ‘D:\LZL\tnb.csv’

truncate

INTO TABLE “TEMP_TNB”

fields terminated by ‘,’

optionally enclosed by ‘"’

trailing nullcols

(C1,

C2,

C3,

C4,

C5,

C6

)

ctl文件中代码内容解释如下:

options (skip=1,rows=1000) – sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行 – rows 默认是64,你可以根据实际指定更合适的 ROWS 参数来指定每次提交记录数。

LOAD DATA --固定格式 ,加载数据

CHARACTERSET AL32UTF8 --指定外部文件的字符集,如果数据库是GBK字符集,导入的数据文件是UTF-8,则此处为AL32UTF8 ,如果字符集,导入的文件与数据一致,此处可以省略,如果导入数据库后内容有乱码,可以逐重查看此处命令行。

INFILE ‘D:\LZL\TNB.csv’ --指定外部数据文件,可以写多个,INFILE"another_data_file.csv" 来指定多个数据文件

BADFILE ‘E:\test\T_ORDER_DETAIL.bad’ – BADFILE 来指定坏数据,可以不写

DISCARDFILE ‘E:\test\T_ORDER_DETAIL.dis’ --DISCARDFILE 指定丢弃数据的文件,可以不写

APPEND -- *** 作类型,可以有insert,append,replace,truncate

INTO TABLE “TEMP_TNB” --目标表 TEMP_TNB 表名要大写

Fields terminated by “,” --导入的数据中每行记录用 “,” 分隔,并不是数据库中的数据,csv文件固定格式

Optionally enclosed by ‘"’ – 导入的数据中每个字段用 ‘"’ 框起,培哪比如字段中有 “,” 分隔符时,csv文件固定格式

trailing nullcols --表的字段没有对应的值时允许为空

(

C1,

C2,

C3,

C4,

C5,

C6

)

说明:在 *** 作类型 truncate 位置可用以下中的一值:

insert --为缺省方式,在数据装载开始时要求表为空

append --在表中追加新记录

replace --删除旧记录(用 delete from table 语句),替换成新装载的记录

truncate --删除旧记录(用 truncate table 语句),替换成新山纳装载的记录

xx.csv文件在表格里面存储形式为 “ xxx”,“xxxx”,“xxxx”

因此这两个参数添加上

Fields terminated by “,”

Optionally enclosed by ‘"’

尤其是在数据库里面为number类型的,否则导入的要么是字符型的,要么导入不成功。

————————————————

4、控制台cmd命令行,转到CSV目录下

在这里插入图片描述

5、打开命令窗口后,输入如下命令代码并按enter键即可:

sqlldr userid=ehr_hns/ehr_hns@127.0.0.1:1521/gw control= ‘D:\LZL\input.ctl’ log=‘D:\LZL\INPUT_log.log’

代码解释:ehr_hns 为username;ehr_hns@127.0.0.1/gw 为PL/SQL账户(在最上面)

control= 后面加上ctl控制文件路径

log= 后面加上日志文件路径

最后运行成功如下:

在这里插入图片描述

日志文件,成功,如下图示:

在这里插入图片描述

文章知识点与官方知识档案匹配

MySQL入门技能树使用数据库 创建和删除数据库

28655 人正在系统学习中

linux的系统是有很多的版本的,比如说linux的redhat,centos,Ubuntu等系统,不懂系统的版本不同命令也是不同的,你洞搜说的应该是centos或rhel吧。这样的系统在6版本和7版本的命是纳棚历不同的7版本的命令的守护进程不是init而是systemctl。所以只有和桐7版本的命令是systemctl,但是6版本的是service。关于7版本更多的信息可以参考linux就该这样学。希望能够帮助到你


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8211733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存