当前位置:首页 » 存储配置 » 存储过程字符集

存储过程字符集

发布时间: 2022-05-12 05:04:40

1. PLsql 表备注,存储过程里的中文都显示乱码,请问怎么处理

方法/步骤
登陆plsql,执行sql语句,输出的中文标题显示成问号????;条件包含中文,则无数据输出

输入sql语句select * from V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文

进入注册表,依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->home(小编安装的是Oracle 11g,这里显示成KEY_OraDb11g_home1),找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

如果以上设置都没有问题,那就要查看下环境变量的设置,查看是否有变量NLS_LANG,没有则新建该变量

新建变量,设置变量名:NLS_LANG,变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,确定即可

6
退出plsql,重新登陆plsql。输入sql语句,执行,中文标题终于正常显示,也有数据输出了

2. imp后表中汉字正常,存储过程汉字乱码,如何解决和exp时字符集一样的

我认为是客户端字符集的问题
Oracle进行字符转换的时候,需要检查你的客户端的字符集设置
我记得是NLS_LANG变量,不是你查的LANG
试试设置一次NLS_LANG=AMERICAN_AMERICA.AL32UTF8试试
两边都是!
我也很好奇,原理上是这样,不知道是否可行

3. Mysql存储过程中文乱码问题

三处编码一致,mysql数据编码,字段编码
php程序编码
mysql存储过程编码
这几处的编码都要一致才可以

查看下你的数据库编码,还有字段编码和存储过程,php程序是否一致

4. 存储过程数据排序问题

如果语句是完全相同的话,那就是数据、数据库字符集、排序规则这几方面的问题了。
数据是否存在差异(包括不可见字符)、2个数据库的字符集是否一致、2个数据库的排序规则是否一致、是否区分大小写。

5. SQL如何修改存储过程中的排序规则

改变数据库的排序规则(做ALTER之前,要中断所有用户对此数据库的访问)
语法:
use
master
go
ALTER
DATABASE
数据库名
COLLATE
排序规则名
例子:
use
master
go
ALTER
DATABASE
luwanzhufa
COLLATE
Chinese_PRC_CS_AS
Chinese_PRC_CS_AS这个是简体中文。而且区分大小写的排序规则。
192
Japanese_BIN
二进制顺序、用于
932(日文)字符集。
193
Japanese_CI_AS
字典顺序、不区分大小写、用于
932(日文)字符集。
200
Japanese_CS_AS
字典顺序、区分大小写、用于
932(日文)字符集。
198
Chinese_PRC_BIN
二进制顺序、用于
936(简体中文)字符集。
199
Chinese_PRC_CI_AS
字典顺序、不区分大小写、用于
936(简体中文)字符集。
203
Chinese_PRC_CS_AS
字典顺序、区分大小写、用于
936(简体中文)字符集。

6. oracle中用存储过程加密一段字符串有哪些方法

可以例用Oracle 自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下
1、设置字符集环境变量
set NLS_LANG=CHINESE_CHINA.ZHS16GBK

2、创建一个存储过程文件
在E:\下创建test.sql文件,内容如下:
create or replace procere test1(i in number) as
begin
dbms_output.put_line(' 输入参数是'||to_char(i));
end;
3、加密
c:\> cd %ORACLE_HOME%\BIN
c:\>wrap iname=e:\test1.sql
PL/SQL Wrapper: Release 8.1.7.0.0 - Proction on Tue Nov 27 22:26:48 2001
Copyright (c) Oracle Corporation 1993, 2000.All Rights Reserved.
Processing test1.sql to test1.plb

4、运行test1.plb
sqlplus /nolog
SQL>conn TEST/TEST@db01
SQL> @e:\a.plb
过程已创建。

5、运行存储过程
SQL> set serveroutput on
SQL> execute test1(1);
输入参数是1
PL/SQL 过程已成功完成。

6、查看存储过程的代码
SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';

7. 为什么MYSQL的储存语句出现这样的错误

基本判定为字符集的问题

通过以下代码可以复现:

dropprocereifexistsdelete_employees;
delimiter$$
--bysleest,2019/05/23此处为复现问题,特意指定入参字符集为mysql默认字符集latin1
createproceredelete_employees(inxmchar(6)CHARSETlatin1COLLATElatin1_bin)
begin
--begin测试用
;
createtemporarytableemployees(`姓名`char(6));
--end测试用
deletefromemployeeswhere姓名=xm;
end$$

calldelete_employees('李丽');

在终端或者连接工具中执行会得到一致的错误

calldelete_employees('李丽');	ErrorCode:1366.Incorrectstringvalue:'xE6x9Dx8ExE4xB8xBD'forcolumn'xm'atrow1

这里建议在建立完存储过程后, 查下存储过程的字符集:

showcreateproceredelete_employees;

主要看结果中的这三列

#character_set_client,collation_connection,DatabaseCollation
'utf8','utf8_general_ci','utf8mb4_general_ci'

本人使用的环境是utf8mb4字符集, 你看看你的会不会是latin1, 如果是的话两种方案

  1. 改数据库字符集, 通用些utf8或者支持emjio的utf8mb4, 重启mysql服务再重连试验

  2. 建立的每个存储过程手动指定字符集

    如:

createproceredelete_employees(inxmchar(6)CHARSETutf8COLLATEutf8_bin)...

这样再试试

8. plsql打开存储过程乱码

可能当时你创建存储过程时,所使用客户端的字符集不正确,而能正常显示中文的客户端字符集是正确的,你只要找到创建存储过程的脚本,在正确字符集的客户端上重新执行一下就行 了

9. 数据库中怎样创建加密的存储过程

可以例用Oracle
自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下
1、设置字符集环境变量
set
NLS_LANG=CHINESE_CHINA.ZHS16GBK
2、创建一个存储过程文件
在E:\下创建test.sql文件,内容如下:
create
or
replace
procere
test1(i
in
number)
as
begin
dbms_output.put_line('
输入参数是'||to_char(i));
end;
3、加密
c:\>
cd
%ORACLE_HOME%\BIN
c:\>wrap
iname=e:\test1.sql
PL/SQL
Wrapper:
Release
8.1.7.0.0
-
Proction
on
Tue
Nov
27
22:26:48
2001
Copyright
(c)
Oracle
Corporation
1993,
2000.All
Rights
Reserved.
Processing
test1.sql
to
test1.plb
4、运行test1.plb
sqlplus
/nolog
SQL>conn
TEST/TEST@db01
SQL>
@e:\a.plb
过程已创建。
5、运行存储过程
SQL>
set
serveroutput
on
SQL>
execute
test1(1);
输入参数是1
PL/SQL
过程已成功完成。
6、查看存储过程的代码
SQL>
select
name,text
from
all_source
where
type='PROCEDURE'
and
name='TEST1';
结果:看不到其原码

10. java代码调Oracle的存储过程收集表中的数据后将数据录入新建的文件这个过程中文件的字符集编码以哪个为准

一般数据库的编码集与java工作空间字符集是一致的,不一致的话,可以以数据库为基准,也可以取出来后再转码呀

热点内容
mysql同步两个数据库 发布:2024-11-16 14:20:55 浏览:759
北京php培训 发布:2024-11-16 14:20:39 浏览:495
新秀丽拉杆箱密码忘了怎么办 发布:2024-11-16 14:05:31 浏览:267
为什么有些国外安卓机不支持电信 发布:2024-11-16 13:49:26 浏览:503
唱吧安卓版怎么样 发布:2024-11-16 13:39:43 浏览:335
抖音思维算法 发布:2024-11-16 13:31:02 浏览:592
沈阳解压店 发布:2024-11-16 13:28:36 浏览:170
集团云服务器 发布:2024-11-16 13:26:47 浏览:368
java源码关联 发布:2024-11-16 13:22:57 浏览:322
安卓应用保存在哪里 发布:2024-11-16 13:22:53 浏览:898