EXP/IMP 学习(四)

简介: 1.4  常见问题1.  字符集问题ORACLE  多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示, 货币形式,排序方式和  CHAR,VARCHAR2,C LOB,LONG  字段的数据的显示等有效。

1.4  常见问题
1.  字符集问题
ORACLE  多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示, 货币形式,排序方式和  CHAR,VARCHAR2,C LOB,LONG  字段的数据的显示等有效。 ORACLE  的多国语言设置最主要的两个特性就是国家语言设置与字符集设置,国家语 言设置决定了界面或提示使用的语言种类,字符集决定了数据库保存与字符集有关数据(如文本)时候的编码规则。
ORACLE 字符集设定,分为数据库字符集和客户端字符集环境设置。在数据库端,
字符集在创建数据库的时候设定,并保存在数据库 props$表中。
在客户端的字符集环境比较简单,主要就是环境变量或注册表项  NLS_ LANG,注 意 NLS_LANG的优先级别为:参数文件使用一点点技巧,就可以使导出/导入在不同的字符集的数据库上转换数据。这里
需要一个 2进制文件编辑工具即可,如 uedit32。用编辑方式打开导出的 dmp文件,获取  2 、 3  字节 的 内容 , 如  00  01 , 先 把 它 转换 为  10  进 制 数, 为  1 ,使用 函 数
NLS_CHARSET_NAME 即可获得该字符集: SQL> select nls_charset_name(1) from dual; NLS_CHARSET_NAME(1)
------------------- US7ASCII
可以知道该 dmp文件的字符集为 US7ASCII,如果需要把该 dmp文件的字符集换
成 ZHS16GBK,则需要用 NLS_CHARSET_ID 获取该字符集的编号: SQL> select nls_charset_id('zhs16gbk') from dual; NLS_CHARSET_ID('ZHS16GBK')
--------------------------
把 852换成 16进制数,为 354,把 2、3字节的 00  01 换成 03  54,即完成了把该 dmp文件字符集从 us7ascii 到 zhs16gbk 的转化,这样,再把该 dmp文件导入到 zhs16gbk 字符集的数据库就可以了。
2.  版本问题
Exp/Imp 很多时候,可以跨版本使用,如在版本 7与版本 8之间导出导入数据,但 这样做必须选择正确的版本,规则为
·总是使用 IMP的版本匹配数据库的版本,如果要导入到 816,则使用 816的导入工 具。
·总是使用 EXP 的版本匹配两个数据库中低的那个版本,如在 815与 816之间互导,则使用 815的 EXP 工具
imp和 exp版本不能往上兼容:    imp 可以导入低版本 exp生成的文件,  不能导入高版本 exp生成的文件。
 
2.1 基本知识
Oracle 的  SQL* LOADER  可以将外部格式化的文本数据加载到数据库表中。通常 与 SPOOL导出文本数据方法配合使用。
1.命令格式
SQLLDR keyword=value [,keyword=value,...]
例:
$ sqlldr user/pwd control=emp.ctl data=emp.dat bad=emp.bad log=emp.log
2.控制文件
 
SQL*LOADER  根据控制文件可以找到需要加载的数据。并且分析和解释这些数
据。
控制文件由三个部分组成,具体参数参考帮助文档:
1.  全局选件,行,跳过的记录数等;
2. INFILE 子句指定的输入数据;
3.  数据特性说明。
comment: --注释
例:
load data infile *
append    --除了 append外,还有 insert、replace、truncate等方式
into table emp
fields terminated b y ‘|’
(
no             float external, name char(20),
age           integer external,
duty         char(1),
salary      float external,
upd_ts     date(14) ‘YYYYMMDDHH24MISS’
)
begindata
100000000003|Mulder|000020|1|000000005000|20020101000000
100000000004|Scully|000025|2|000000008000|20020101235959
 
控制文件中 infile选项跟 sqlldr 命令行中 data 选项含义相同,如使用 infile *则表明
数据在本控制文件以 begin data 开头的区域内。 一些选项:
FIELDS TERMINATED BY WHITESPACE FIELDS TERMINATED BY x'09'
FILLER_1 FILLER, //  指定某一列将不会被装载
DEPTNO position(1:2), DNAME position(*:16), //  指定列的位置
SEQNO RECNUM //载入每行的行号
SKIP n          //  指定导入时可以跳过多少行数据

3.数据文件
按控制文件数据格式定义的数据行集,例:
100000000001|Tom|000020|1|000000005000|20020101000000
100000000002|Jerry|000025|2|000000008000|20020101235959
固定格式、可变格式、流记录格式:
固定格式:
当数据固定的格式(长度一样)时且是在文件中得到时,要用 INFILE "fix n"
load data
infile 'example.dat' "fix 11"
into table example
fields terminated b y ',' optionally enclosed by '"'
(col1 char(5), col2 char(7)) example.dat:
001, cd, 0002,fghi,
00003,lmn,
1, "pqrs",
0005,uvwx,
可变格式:
当数据是可变格式(长度不一样)时且是在文件中得到时,要用 INFILE "var n"。如:
load data
infile 'example.dat' "var 3"
into table example
fields terminated b y ',' optionally enclosed by '"'
(col1 char(5), col2 char(7)) example.dat:
009hello,cd,010world,im,
012my,name is,
流记录格式: // Stream-recored format:
load data infile 'xx.dat' "str '|\n'"
into table xx field terminated b y ',' optionally enclosed by '"'
(col1 char(5), col2 char(7))
example.dat:
hello, ccd,|
world, bb,|
4.  坏文件
bad=emp.bad
坏文件包含那些被 SQL*Loader拒绝的记录。被拒绝的记录可能是不符合要求的记
录。
5.  日志文件及日志信息
log=emp.log
当 SQL*Loader  开始执行后,它就自动建立  日志文件。日志文件包含有加载的总 结,加载中的错误信息等。

 

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
IDE 调度 开发工具
如何在S32DS中使用SystemView分析FreeRTOS
如何在S32DS中使用SystemView分析FreeRTOS
如何在S32DS中使用SystemView分析FreeRTOS
|
11月前
|
移动开发 算法 5G
面向高多普勒衰落信道的 OTFS 调制技术
正交时频空(OTFS)调制通过延迟-多普勒域传输,将高多普勒信道转化为准静态环境,显著提升高速移动下的通信鲁棒性。本文研究其信号检测与信道估计,提出低复杂度MCMC检测算法和基于PN导频的稀疏信道估计算法,验证了OTFS在高速场景下的优异性能。
953 0
面向高多普勒衰落信道的 OTFS 调制技术
|
9月前
|
人工智能 自然语言处理 搜索推荐
企业 AI 客服系统怎么建?免费工具推荐、成本测算与选型攻略
2025年,AI客服系统成为企业提升服务效率与客户体验的核心工具。面对用户对7×24小时响应、个性化交互的高要求,传统客服难以应对。AI客服通过自然语言处理与自动化技术,实现高效应答、降本增效,并释放人力处理复杂问题。超60%企业已在客户触点部署AI能力,智能客服正从“可选”变为“必备”。
|
11月前
|
缓存 边缘计算 双11
阿里云渠道商:适合使用CDN 预热的场景有哪些?
本文介绍CDN预热功能在大型活动、大文件分发、周期性更新等场景中的应用。通过提前将资源推送至边缘节点,可显著降低首字节时间、减轻源站压力,提升访问效率与系统稳定性。
|
安全 Java API
Java 抽象类与接口在 Java17 + 开发中的现代应用实践解析
《Java抽象类与接口核心技术解析》 摘要:本文全面剖析Java抽象类与接口的核心概念与技术差异。抽象类通过模板设计实现代码复用,支持具体方法与状态管理;接口则定义行为规范,实现多态支持。文章详细对比了两者在实例化、方法实现、继承机制等方面的区别,并提供了模板方法模式(抽象类)和策略模式(接口)的典型应用示例。特别指出Java8+新特性为接口带来的灵活性提升,包括默认方法和静态方法。最后给出最佳实践建议:优先使用接口定义行为规范,通过抽象类实现代码复用,合理组合两者构建灵活架构。
489 2
|
XML 算法 计算机视觉
使用OpenCV进行人脸检测和戴墨镜特效实战(附Python源码)
使用OpenCV进行人脸检测和戴墨镜特效实战(附Python源码)
1187 1
|
SQL 网络协议 Java
TCP/IP介绍
TCP/IP介绍
749 1
|
传感器 机器学习/深度学习 运维
预测性维护
预测性维护
Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
在Power BI中,从SharePoint List获取数据时遇到Table和List混合的数据源,直接展开会导致“笛卡尔积”效应,生成过多行。目标是保持行数不变,将Table中的字段与List值用逗号分隔显示在同一行。解决方法包括:1) 添加新列,从Table中提取List的Column2值;2) 使用Text.Combine函数合并List中的值。具体操作步骤包括选择列并自定义新列,然后展开List并以逗号分隔。通过这些步骤,可以将Table转换为所需的字符串格式。完整的Power BI Query代码展示了这一过程。参考链接提供了更多详情。
669 2
|
缓存 Cloud Native Java
【紧急救援】Nacos配置上线后失效?手把手教你如何轻松搞定命名空间修改难题!
【8月更文挑战第15天】Nacos是关键的云原生服务管理平台,用于动态服务发现与配置管理。但在使用其管理微服务配置时,可能会遇到命名空间内的配置更新后不生效的问题。本文探讨此问题并提供解决方案。首先需确认Nacos服务器运行正常及客户端正确连接。接着检查客户端缓存配置,可通过禁用缓存或缩短缓存间隔来即时更新配置。例如,在Spring Cloud Alibaba Nacos配置中心中启用自动刷新功能,并设置每5秒拉取新配置。同时,对于新增配置项,需重启客户端应用。还需检查Nacos服务器日志排除异常,并考虑升级Nacos版本解决兼容性问题。通过这些步骤,通常可有效解决配置不生效的难题。
1428 0