我在操作oracle数据库时,需要完成一个小的需求,就是将提供给我的csv文件, 其中的字段内容,对应导入到oracle表中。
该csv文件相对于表要缺少两个字段(id,updateTime)。我思路是:在测试库中新建一张表,恰巧是csv表中的几个字段,通过Navicat工具的“导入向导”功能,将csv文件内容倒进测试库的表中。
csv文件:
导入成功后,我可以拿到这张表的“数据结构和数据”,将拿到的sql文件利用Notepad++打开。截取其中的数据sql部分,进行字段填充完善,使其变为能直接插入到现网的insert into 语句。
插入前,还需要考虑下面的几点。
1、id自增,或者自动生成都可以
2、updateTime要是系统当前事件
围绕上面问题,我的思路是,从sql入手。id自增,可以创建一个触发器,使其让id随着序列的增加而增加(序列提前创好)。updateTime直接可以在插入语句中填充成sysdate就可以。
id自增的步骤:
1、创建自增序列
CREATE SEQUENCE RM_LINK_OLTTEST_SEQUENCE
INCREMENT BY 1 -----{自增量为1}
START WITH 1 ----------{从1开始自增}
NOMINVALUE
NOMAXVALUE
NOCYCLE
2、查看自增序列是否创建成功
select RM_LINK_OLTTEST_SEQUENCE.NEXTVAL from dual;
3、创建触发器
CREATE OR REPLACE TRIGGER RM_LINK_OLTTEST_SEQ_TRIGGER
BEFORE INSERT or UPDATE or DELETE ON RM_LINK_OLTTEST
FOR EACH ROW
BEGIN
SELECT RM_LINK_OLTTEST_SEQUENCE.NEXTVAL INTO :NEW.ID FROM DUAL;
END TR_FCBOOK;
4、插入一条样例数据
insert into RM_LINK_OLTTEST values(RM_LINK_OLTTEST_SEQUENCE.NEXTVAL,'张三','234','324','21','423','tres',sysdate);
测试成功插入该条数据,然后拿到完整sql,插入到正式库中的那张表中。
------------感谢看完,期待交流----------------