linux服务器上的程序获取的数据存入oracle数据库,在数据库中汉字显示乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux服务器上的程序获取的数据存入oracle数据库,在数据库中汉字显示乱码相关的知识,希望对你有一定的参考价值。

同样的程序,对字符的编码在程序内部做了转换。
linux服务器上的程序获取的数据存入oracle数据库,在数据库中汉字显示乱码。
而unix服务器上的程序获取的数据存入oracle数据库显示汉字正常。

肯定是字符集不对,不知道Oracle数据库是同一个,还是分别安装在两个系统上的,建议先检查数据库字符集,再看操作系统的字符集。追问

两台web服务器(liunx和unix各一台),使用同一个数据库。
需要web服务器的字符集、数据库的字符集均相同?
盼详解
谢谢

参考技术A 检查下数据库字符集吧 参考技术B 设置一下字符集

Linux服务器上的oracle数据导入和导出

背景:

在同一台Linux服务器上,有两个数据库用户,分别为:database1,database2,如何把database1用户下面的所有的表和数据,导入到database2数据库(database2为新创建的用户,没有创建任何表,是一个空的数据库)

 

操作步骤:

1、创建数据库用户database2(注:这里只创建新的数据库用户database2,database1数据库用户已经存在,并且database1用户已有表和数据)

登录数据库linux服务器,切换成oracle用户(这里说的oracle指的是数据库的一个管理员用户名,角色是sysdba),操作如下:

su - oracle

sqlplus / as sysdba;  -- 输完后回车,可以进入sqlplus客户端,进行SQL语句操作

create user database2 identifield by 123456;

grant connect, resource, dba to database2;

alter user database2 default tablespace PB_DATA;

 

2、创建文件导出的目录,database1用户下的表数据,导出后的文件,将会保存在这个目录下

SQL > create directory PB_DUMP as ‘\usr\history\data\exoport‘;

PB_DUMP是linux系统中\usr\history\data\exoport目录的别名,通过上面SQL语句创建后,信息会保存在oracle的目录表中,可以查询表select * from dba_directories中的DIRECTORY_NAME字段值确认,对应的路径是DIRECTORY_PATH字段。

 

3、创建导出脚本

cat > exp_database1_table_data.par

输入如下内容,保存的脚本文件为exp_database1_table_data.par

userid = ‘oracle / as sysdba‘

directory = PB_DUMP

dumpfile = exp_database1_table_data_20180101.dmp

logfile = exp_database1_table_data_20180101.log

schemas = database1

cluster = n

参数说明:directory参数是一个目录名称, PB_DUMP是步骤2中所创建的oracle目录,也就是导出后的dmp文件保存在这个目录下。dumpfile是导出后的数据文件的名称;logfile是导出日志,导出过程中所打印的日志信息会保存在这里;schemas参数值是即将要导出数据的源数据库用户名。

 

4、创建导入脚本

cat >imp_database2_table_data.par

输入如下内容,保存的脚本文件为imp_database2_table_data.par

userid = ‘oracle / as sysdba‘

directory = PB_DUMP

dumpfile = exp_database1_table_data_20180101.dmp

logfile = exp_database1_table_data_20180101.log

remap_schemas = database1 :database2

cluster = n

参数说明:remap_schemas的参数值database1 :database2,表示把database1用户下的数据导入到database2用户下(数据文件,来源于从database1用户中已导出的exp_database1_table_data_20180101.dmp)

 

5、执行导出命令(执行完下面的命令后,数据库用户database2下将会有表和数据,来源于database1)

expdp parfile = imp_database2_table_data.par

 

以上是关于linux服务器上的程序获取的数据存入oracle数据库,在数据库中汉字显示乱码的主要内容,如果未能解决你的问题,请参考以下文章

怎样手动的干净的删除linux上的ORACLE数据库

连接linux数据库Oracle时报错ORA-12541: TNS: 无监听程序

微信小程序实现获取用户信息并存入数据库操作示例

Linux下启动Oracle服务和监听程序

怎么将java日期存入数据库

Linux服务器上的oracle数据导入和导出