页面“Oracle乱码”与“Oracle基础”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
docker>Evan
 
(导入1个版本)
 
第1行: 第1行:
=Q=
+
=最常用的命令=
全库imp 乱 中文注释乱码
+
<pre>
=处理过程=  
+
#login
 +
su - oracle
 +
[oracle@oracle-zimg-etc ~]$ sqlplus
 +
Enter user-name: sys as sysdba
 +
Enter password:
 +
SQL>
 +
 
 +
 
 +
一、首先创建一个表空间intratest
 +
 
 +
create tablespace intratest datafile '/home/oracle/app/oradata/xtwl/intratest.dbf' size 5m autoextend on next 50m maxsize unlimited;
 +
 
 +
exp ztgo0203/Ztgo_456@xtwl file=0203.dmp owner=ZTGO0203  #导出
 +
imp ZTGO0816/ZTGO0816@xtwl file=0203.dmp fromuser=ZTGO0203 touser=ZTGO0816 #数据导入 xtwl数据库中
 +
so
 +
 
 +
 
 +
ps:datafile可以通过查询视图v$dbfile获得:select * from v$dbfile;
 +
如下  /home/oracle/app/oradata/xtwl/
  
==查看oracle server端的字符集==
+
 +
二、创建一个用户orauserxk。最好是dba权限。默认表空间是intratest
 +
 
 +
create user orauserxk identified by 1234 default tablespace intratest temporary tablespace temp;
 +
grant connect,resource ,dba  to orauserxk;</pre>
 +
 +
 
 +
==三、用imp命令导入==
 +
===导入新库===
 
<pre>
 
<pre>
 +
#user is  oracle so  can user oracle user to imp  root files    touser  full 这两个mode 只能有其中一个 一般是基于用户的 所以不要 full=y
 +
shell >imp orauserxk/1234@xtwl  file=./0203.dmp log=./imp.log fromuser=orauserxk  touser=orauserxk  ignore=y #
 +
 +
一般用 fromusr and touser
 +
imp ZTGO/ZTGO@xtwl file=./1023.dmp  log=./log fromuser=zt touser=ZT </pre>
 +
=== 导入非新库===
 +
<pre>
 +
ull=y ignore=y;  不然不成功
 +
 +
imp ZTGO0/ZTGO0@xtwl file=./1023.dmp full=y ignore=y;
 +
 +
</pre>
 +
 +
===oracle imp导入中文乱码===
 +
<pre>
 +
查看环境变量 echo $NLS_LANG
 +
 +
查看数据库字符集 select userenv('language') from dual;
 +
 
SQL> select userenv('language') from dual;
 
SQL> select userenv('language') from dual;
  
 
USERENV('LANGUAGE')
 
USERENV('LANGUAGE')
 
----------------------------------------------------
 
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8 </pre>
+
AMERICAN_AMERICA.AL32UTF8
 +
 
 +
线上和开发环境看起来是一样的
 +
 
 +
如果二者不一致,修改其一使二者一致。
 +
 
 +
建议修改NLS_LANG,方便、简单、安全
 +
 
 +
修改NLS_LNAG,有两种方式
 +
 
 +
1,临时修改 在当前登录终端执行export NLS_LANG=XX (XX:表示数据库字符集)
 +
 
 +
  本地登录退出后失效
 +
1
 +
2,永久修改 修改.bash_profile,在文件中加入export NLS_LANG=XX (XX:表示数据库字符集)
 +
 
 +
重新登录后永久生效
 +
1
 +
如果在设置环境变量的时候出现“XX: not a valid identifier”,检查XX中是否有空格,如果有空格要将XX用双引号包括。例如:export NLS_LANG=“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
 +
</pre>
  
==修改环境变量NLS_LANG==
+
 
 +
 
 +
 
 +
数据库的字符集,与你导入的字符集一致吗? r如果不一致就会出现乱码情况
 +
 
 +
[https://blog.csdn.net/fireofjava/article/details/53980966 Oracle导入sql文件数据,中文乱码问题解决方案]
 +
 
 +
 
 +
[http://lydawen.iteye.com/blog/1310172 acle imp导入中文乱码]
 +
 
 +
==四 exp 导出==
 +
<pre>
 +
#用户/密码@命名空间
 +
exp ztgo/Ztgo_6@xtwl file=1023.dmp owner=ZTGO0203
 +
</pre>
 +
 
 +
==查看当前的所有数据库==
 +
<pre>
 +
select name from v$database;
 +
select * from v$database; </pre>
 +
 
 +
==备份单张表==
 
<pre>
 
<pre>
#注意 是oracle用户
+
备份单张表,同时包含主键索引。
echo $NLS_LANG #可见为空
+
格式:
 +
exp userid=myuserName/password  file=area20130613.dmp log=area20130613.log indexes=y compress=n tables=area;
 +
eg:
 +
#成功备份 备份目录  /home/evanbak 201810161445
 +
exp ztgo0203/Ztgo_456@xtwl file=USER_MONEY_LAST.dmp  indexes=y compress=n tables=USER_MONEY_LAST;
  
#由上面查看可要得
+
exp ztgo0203/Ztgo_456@xtwl file=USER_MONEY_LAST.dmp owner=ZTGO0203 log=USER_MONEY_LAST.log indexes=y compress=n tables=USER_MONEY_LAST; #这个有错呀
export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'
 
  
#如果要永久生效
 
编辑用户环境变量 .bash_profile ,添加以下内容:
 
  
export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'
+
恢复单张表。
  
. .bash_profile
+
imp myuserName/password file=area20130613.dmp tables=area;
 +
</pre>
  
 +
=修改oracle的用户的密码=
 +
==普通用户==
 +
<pre>
 +
sqlplus / as sysdba
 +
connect TGO0815/TGO0815
  
 +
ALTER USER TGO0815 IDENTIFIED BY TDB0926;
 
</pre>
 
</pre>
  
=参考=
+
=查看表=
 +
describe nchar_tst(nchar_tst为表名)  # 哈哈 不是PT同学说的show tables
 +
=查询表的大小和表空间的大小=
 +
 
 +
[https://blog.csdn.net/cosio/article/details/3978747 查询表的大小和表空间的大小]
 +
==system、sys、==
 +
[http://blog.sina.com.cn/s/blog_13cc013b50102v5zu.html Oracle 用户、角色管理简介good]
 +
 
 +
[https://blog.csdn.net/psp0001060/article/details/50908295 修改oracle的system、sys、普通用户的密码]
 +
 
 +
[https://www.cnblogs.com/xd502djj/archive/2009/02/26/1398702.html oracle修改用户密码]
 +
 
 +
[http://blog.sina.com.cn/s/blog_13cc013b50102v62v.html Oracle 修改SYS、system用户密码 ]
 +
 
 +
[https://blog.csdn.net/cuker919/article/details/9084547 Oracle备份表exp和imp]
 +
 
 +
=see also=
 +
 
 +
 
 +
[https://blog.csdn.net/xiangsir/article/details/8570480 Oracle 全库备份脚本]
 +
 
 +
 
 +
[https://www.csdn.net/gather_2a/MtTaQg0sMzc5Ni1ibG9n.html oracle 全库 备份 导入]
 +
 
 +
[https://blog.csdn.net/HelloAnyone/article/details/46490091 RedHat5.4安装oracle11g]
 +
 
 +
[https://blog.csdn.net/Cow_cz/article/details/70229929?utm_source=blogxgwz1 oracle数据库数据导入导出步骤(入门)]
 +
 
 +
[https://blog.csdn.net/gnolhh168/article/details/6442808 oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录)]
 +
 
 +
[https://blog.csdn.net/crave_shy/article/details/42291965 Oracle快速清除表数据]
 +
 
 +
[http://blog.51cto.com/7883830/1761699 oracle数据库删除数据的两种方式]
 +
 
  
[https://my.oschina.net/u/2291124/blog/392174 oracle imp导入数据乱码问题的解决]
 
  
[https://blog.csdn.net/fireofjava/article/details/53980966 Oracle导入sql文件数据,中文乱码问题解决方案]
 
  
[[category:oracle]]
+
[[category:ops]] [[category:db]] [[category:oracle]]

2019年10月14日 (一) 13:52的最新版本

最常用的命令

#login 
su - oracle
[oracle@oracle-zimg-etc ~]$ sqlplus 
Enter user-name: sys as sysdba 
Enter password: 
SQL> 


一、首先创建一个表空间intratest

create tablespace intratest datafile '/home/oracle/app/oradata/xtwl/intratest.dbf' size 5m autoextend on next 50m maxsize unlimited;

exp ztgo0203/Ztgo_456@xtwl file=0203.dmp owner=ZTGO0203  #导出
imp ZTGO0816/ZTGO0816@xtwl file=0203.dmp fromuser=ZTGO0203 touser=ZTGO0816 #数据导入 xtwl数据库中
so 


ps:datafile可以通过查询视图v$dbfile获得:select * from v$dbfile;
如下  /home/oracle/app/oradata/xtwl/

 
二、创建一个用户orauserxk。最好是dba权限。默认表空间是intratest

create user orauserxk identified by 1234 default tablespace intratest temporary tablespace temp;
grant connect,resource ,dba  to orauserxk;


三、用imp命令导入

导入新库

#user is  oracle so  can user oracle user to imp  root files     touser  full 这两个mode 只能有其中一个 一般是基于用户的 所以不要 full=y
shell >imp orauserxk/1234@xtwl  file=./0203.dmp log=./imp.log fromuser=orauserxk  touser=orauserxk  ignore=y #

一般用 fromusr and touser
imp ZTGO/ZTGO@xtwl file=./1023.dmp  log=./log fromuser=zt touser=ZT 

导入非新库

 
ull=y ignore=y;  不然不成功

imp ZTGO0/ZTGO0@xtwl file=./1023.dmp full=y ignore=y;

oracle imp导入中文乱码

查看环境变量 echo $NLS_LANG

查看数据库字符集 select userenv('language') from dual;

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

线上和开发环境看起来是一样的

如果二者不一致,修改其一使二者一致。

建议修改NLS_LANG,方便、简单、安全

修改NLS_LNAG,有两种方式

1,临时修改 在当前登录终端执行export NLS_LANG=XX (XX:表示数据库字符集)

   本地登录退出后失效
1
2,永久修改 修改.bash_profile,在文件中加入export NLS_LANG=XX (XX:表示数据库字符集)

 重新登录后永久生效
1
如果在设置环境变量的时候出现“XX: not a valid identifier”,检查XX中是否有空格,如果有空格要将XX用双引号包括。例如:export NLS_LANG=“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”



数据库的字符集,与你导入的字符集一致吗? r如果不一致就会出现乱码情况

Oracle导入sql文件数据,中文乱码问题解决方案


acle imp导入中文乱码

四 exp 导出

#用户/密码@命名空间 
exp ztgo/Ztgo_6@xtwl file=1023.dmp owner=ZTGO0203

查看当前的所有数据库

select name from v$database;
select * from v$database; 

备份单张表

备份单张表,同时包含主键索引。
格式:
exp userid=myuserName/password  file=area20130613.dmp log=area20130613.log indexes=y compress=n tables=area;
eg:
#成功备份 备份目录  /home/evanbak 201810161445
exp ztgo0203/Ztgo_456@xtwl file=USER_MONEY_LAST.dmp  indexes=y compress=n tables=USER_MONEY_LAST;

exp ztgo0203/Ztgo_456@xtwl file=USER_MONEY_LAST.dmp owner=ZTGO0203 log=USER_MONEY_LAST.log indexes=y compress=n tables=USER_MONEY_LAST; #这个有错呀


恢复单张表。

imp myuserName/password file=area20130613.dmp tables=area;

修改oracle的用户的密码

普通用户

 sqlplus / as sysdba
 connect TGO0815/TGO0815

ALTER USER TGO0815 IDENTIFIED BY TDB0926;

查看表

describe nchar_tst(nchar_tst为表名)  # 哈哈 不是PT同学说的show tables

查询表的大小和表空间的大小

查询表的大小和表空间的大小

system、sys、

Oracle 用户、角色管理简介good

修改oracle的system、sys、普通用户的密码

oracle修改用户密码

Oracle 修改SYS、system用户密码

Oracle备份表exp和imp

see also

Oracle 全库备份脚本


oracle 全库 备份 导入

RedHat5.4安装oracle11g

oracle数据库数据导入导出步骤(入门)

oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录)

Oracle快速清除表数据

oracle数据库删除数据的两种方式