1、 首先,打开PL/SQL Developer,选中要生成SQL的表
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的铜陵网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
2、 鼠标点击右键—“Export data”,会弹出“Export Tables”对话框。选中第二个页签“SQL Inserts”,根据自己的需要设置导出条件即可。比如我需要创建表的SQL,则选中如下所示的选项,再选择“Output file”输出到文件,点击按钮“Export”,即可导出。
3、 也可以选择插入数据的SQL脚本,大家按需所选即可。
Oracle用户的导出与导入
导出:
1、 找到你Oracle安装位置的bin目录下的 emp.exe
如: D:\oracletools\oracle\product\10.2.0\db_1\BIN
2、双击运行,输入你要导出的用户名和密码(密码不可见)
3、输入你导出文件存放的位置
如:d:\crm.dmp 【一定是bmp文件】
导入:
1、 创建用户 如:crm 【如果存在crm用户(里面含有数据等 先删除 drop user crm cascade)】
2、 赋权让其拥有导入的权限 grant dba to crm
3、 找到你Oracle安装位置的bin目录下的 imp.exe
4、 输入你要导入dmp文件的位置
用Oracle的这种方式导出,比较好一些。 如果使用里面的sql导出的话,导出的是sql文件,
这种方式的话就是dmp文件,如果要使用直接导入就行。
在命令行模式下,用 如下格式的命令就可以实现脚本的导入执行:
sqlplus [username]/[password]@[instancename] @[scriptfilename]
中括号内的内容用实际名字代替。
PL/SQL登录到数据库,使用tools工具进行导入。使用plsql登录到需要导入数据的数据库。点击工具栏上【tools】--【Import tables】
请点击输入图片描述
点击工具【SQL Inserts】(第二个选项),点击选择需要导入的数据库脚本。
请点击输入图片描述
选择sql脚本的,点击打开,即可打开数据库脚本文件,数据库脚本就可以预加载到plsq工具中。
请点击输入图片描述
开始导入数据库数据。选择完sql脚本之后,点击【Import】按钮开始将脚本中的数据导入到数据库中,这个操作执行一次即可,如果数据量比较大,会出现卡顿。
请点击输入图片描述
执行完之后,没有任何报错说明插入成功。【注意:一定记得点击commit进行提交数据,否则数据不会提交到数据库进行存储】
请点击输入图片描述
查询验证插入的数据。插入完之后,可以编写sql语句对插入的数据进行核对。执行查询sql看到刚才插入的数据。
请点击输入图片描述
spool /home/oracle/XXX.sql 后面是你要的导出路径和导出文件名,最好是 txt 结尾的,不是的话等导完需要改名。
之后是 select 语句,字段和表名根据实际更改,日期要用 to_char 进行转换。
/data01/zhu/XXX.txt 是你 oracle 导出文件的位置,只支持 txt文件 , fields terminated by ',' 意思是你字段间的分隔符。一般没有中文用 character set utf8 ,有中文用 character set gb2312 ,不然可能会报错。
PS:180万条数据导进去的时间大概是2分钟。但是700万数据目前超过四小时还没导完,建议分割来提高效率。
批量插入数据脚本
1、第一种批量插入数据脚本,可以基本满足要求。理解上较为简单,所以这个最常用。
NEXTVAL和CURRVAL的区别:
1、如果 sequence.CURRVAL 和 sequence.NEXTVAL 都出现在一个 SQL 语句中,则序列只增加一次。在这种情况下,每个 sequence.CURRVAL 和 sequence.NEXTVAL 表达式都返回相同的值,不管在语句中sequence.CURRVAL 和 sequence.NEXTVAL 的顺序。
执行脚本结果如下:
3、两个表,同时批量插入数据的脚本
3、
4、 涉及子表时,批量插入数据脚本,
5、 批量修改数据 :
时间取数方式:
一、SYSTIMESTAMP(取当前系统值)
二、SYSDATE(取当前系统值,但只精确到时,分和秒都为0)
三、固定值为:TO_TIMESTAMP ('2019-2-12 15:24:45.703000', 'yyyy-mm-dd hh24:mi:ss.ff6')
把固定的字段改为变量:
方式一:’||i||’ 例:’{“no”:“111’||i||’”}’(此方式)
方式二:concat 例:concat(concat(’{“blNo”:111"’,i),’"}’)