oracle数据与文本导入导出源码示例
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,oracle提供了sqlldr的工具,有时需要讲数据导入到文本,oracle的spool可以轻松实现。方便的实现oracle导出数据到txt、txt导入数据到oracle。一、导出数据到txt用all
千家信息网最后更新 2024年11月23日oracle数据与文本导入导出源码示例
oracle提供了sqlldr的工具,有时需要讲数据导入到文本,oracle的spool可以轻松实现。
方便的实现oracle导出数据到txt、txt导入数据到oracle。
一、导出数据到txt
用all_objects表做测试
SQL> desc all_objects; Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) OBJECT_NAME NOT NULL VARCHAR2(30) SUBOBJECT_NAME VARCHAR2(30) OBJECT_ID NOT NULL NUMBER DATA_OBJECT_ID NUMBER OBJECT_TYPE VARCHAR2(19) CREATED NOT NULL DATE LAST_DDL_TIME NOT NULL DATE TIMESTAMP VARCHAR2(19) STATUS VARCHAR2(7) TEMPORARY VARCHAR2(1) GENERATED VARCHAR2(1) SECONDARY VARCHAR2(1)
拿object_id,object_name做导出、导入测试。
一些设置满足数据导出的样式:
vi exp_table.sql
set line 1000 --设置行的长度set pagesize 0 --输出不换页set feedback off --默认的当一条sql发出的时候,oracle会给一个反馈,比如说创建表的时候,如果成功命令行会返回类似:Table created的反馈,off后不显示反馈set heading off --不显示表头信息set trimspool on --如果trimspool设置为on,将移除spool文件中的尾部空set trims on --去掉空字符set echo off; --显示start启动的脚本中的每个sql命令,缺省为onset colsep '|' --设置分隔符set termout off --不在屏幕上显示结果spool db1.txt --记录数据到db1.txtselect object_id,object_name from all_objects; --导出数据语句spool off --收集完毕exit
一切就绪后导出数据:
[oracle@centos5 ~]$ sqlplus test/test @exp_table.sql SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jun 13 16:35:14 2013Copyright (c) 1982, 2007, Oracle. All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options[oracle@centos5 ~]$ sed -i 's/ //g' db1.txt --可选,去除每行开头部分的空格[oracle@centos5 ~]$ more db1.txt 20|ICOL$44|I_USER128|CON$15|UNDO$29|C_COBJ#3|I_OBJ#25|PROXY_ROLE_DATA$
导出后检查数据的记录数是否正确
[oracle@centos5 ~]$ cat db1.txt |wc -l49988[oracle@centos5 ~]$ sqlplus test/testSQL*Plus: Release 10.2.0.4.0 - Production on Thu Jun 13 16:36:21 2013Copyright (c) 1982, 2007, Oracle. All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select count(*) from all_objects; COUNT(*)---------- 49988 --数据正确
二、从txt导入数据到oracle
sqlldr是通过一个control文件设定后,从文本导入数据
建立一张测试表
SQL> create table tb_sqlldr (id number,name varchar2(50));Table created.
建立一个control文件
vi tb_sqlldr.ctl
load data infile 'db1.txt' --数据来源文本append into table tb_sqlldr --数据导入到表tb_sqldr中,导入方式为追加,如果想覆盖fields terminated by "|" --4、字段终止于X'09',是一个制表符(tab)(id,name) --定义对应的字段名称,注意顺序
导入数据分成四种模式,可以根据需求选择:
APPEND // 原先的表有数据 就加在后面
INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值
REPLACE // 原先的表有数据 原先的数据会全部删除
TRUNCATE // 指定的内容和replace的相同 会用truncate语句删除现存数据
执行导入操作
sqlldr userid=test/test control=tb_sqlldr.ctl
差不多5w的数据短短2s解决
执行导入后验证数据
SQL> select count(*) from tb_sqlldr; COUNT(*)---------- 49988
导入成功
再执行一次导入操作,由于设置为追加:
SQL> select count(*) from tb_sqlldr; COUNT(*)---------- 99976
记录翻倍
sqlldr还有很多参数供选择,比如log、bad这些,查看帮助即可。
[oracle@centos5 ~]$ sqlldrSQL*Loader: Release 10.2.0.4.0 - Production on Thu Jun 13 17:07:26 2013Copyright (c) 1982, 2007, Oracle. All rights reserved.Usage: SQLLDR keyword=value [,keyword=value,...]Valid Keywords: userid -- ORACLE username/password control -- control file name log -- log file name bad -- bad file name data -- data file name discard -- discard file name discardmax -- number of discards to allow (Default all) skip -- number of logical records to skip (Default 0) load -- number of logical records to load (Default all) errors -- number of errors to allow (Default 50) rows -- number of rows in conventional path bind array or between direct path data saves (Default: Conventional path 64, Direct path all) bindsize -- size of conventional path bind array in bytes (Default 256000) silent -- suppress messages during run (header,feedback,errors,discards,partitions) direct -- use direct path (Default FALSE) parfile -- parameter file: name of file that contains parameter specifications parallel -- do parallel load (Default FALSE) file -- file to allocate extents from skip_unusable_indexes -- disallow/allow unusable indexes or index partitions (Default FALSE)skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable (Default FALSE)commit_discontinued -- commit loaded rows when load is discontinued (Default FALSE) readsize -- size of read buffer (Default 1048576)external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE (Default NOT_USED)columnarrayrows -- number of rows for direct path column array (Default 5000)streamsize -- size of direct path stream buffer in bytes (Default 256000)multithreading -- use multithreading in direct path resumable -- enable or disable resumable for current session (Default FALSE)resumable_name -- text string to help identify resumable statementresumable_timeout -- wait time (in seconds) for RESUMABLE (Default 7200)date_cache -- size (in entries) of date conversion cache (Default 1000)PLEASE NOTE: Command-line parameters may be specified either byposition or by keywords. An example of the former case is 'sqlldrscott/tiger foo'; an example of the latter is 'sqlldr control=foouserid=scott/tiger'. One may specify parameters by position beforebut not after parameters specified by keywords. For example,'sqlldr scott/tiger control=foo logfile=log' is allowed, but'sqlldr scott/tiger control=foo log' is not, even though theposition of the parameter 'log' is correct.
总结
以上就是本文关于oracle数据与文本导入导出源码示例的全部内容,感兴趣的朋友可以参阅:ORACLE SQL语句优化技术要点解析、oracle 数据库启动阶段分析、oracle数据库导入导出命令解析等,如有不足之处,欢迎留言指正,希望对大家有所帮助。感谢大家对网站的支持。
数据
文本
命令
文件
语句
测试
成功
内容
字段
数据库
时候
帮助
选择
源码
示例
相同
差不多
兴趣
分隔符
制表符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳科飞时速网络技术
vue动态路由数据库
腾讯云服务器做一个网站
乐清软件开发wcng公司
软件开发的领域分析
当软件开发权益受到侵害时
jsp数据库 数据返回
金融软件开发人员会计知识
万方数据库的论文如何截图
长春好的软件开发
长沙互动安全文化展厅软件开发
数据库查询尾号
方舟服务器失去链接
华科数据库课设
数据库安全市场占有率
友刷服务器异常请重试
网络安全的治理机构是什么
公安局网络安全自查评估报告
浙江杰拉网络技术有限公司
什么是数据库恢复功能
硬件测试开发软件开发
数据库联系的三种类型是
关于小学生网络安全的新闻
5G网络技术的典型网络分片
幼儿园小班网络安全教案100篇
网络安全专家刘杰
服务器滑轨
张雪峰谈专科计算机网络技术
现数据库模型包括
网络安全法多久实施