100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > linux mysql 存储过程乱码 mysql存储过程中 乱码问题解决办法

linux mysql 存储过程乱码 mysql存储过程中 乱码问题解决办法

时间:2022-02-07 01:44:55

相关推荐

linux mysql 存储过程乱码 mysql存储过程中 乱码问题解决办法

中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题。

1、直接使用insertinto语句没问题,能够正常插入汉字。

2、把insertinto语句移到Procedure中后,就无法插入汉字了。在客户端软件中插入的汉字总是为乱码,英文和数字没问题。

3、如果在jdbc中调用这个Procedure总是报错:

在查阅了很多相关资料后,发现只需要改动procedure的参数的定义就OK了,改动为:在varchar参数后面加入:characterset指定编码。由于服务器编码为gbk,我指定为:

declare v_titlevarchar(200)charactersetgbk

再执行插入时就不会乱码了

写个完整的 存储过程 供参考

create procedure copyDevTO_authKey()

begin

DECLARE var_userId int;

DECLARE var_authkey varchar(512)charactersetgbk;

DECLARE done INT DEFAULT 0;

DECLARE cur_device CURSOR FOR select userId,authkey from tbl_device;

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

SET done = 0;

OPEN cur_device;

-- loop cursor

FETCH cur_device INTO var_userId , var_authkey;

WHILE done <> 1 DO

insert into tbl_user_authkey values (var_userId , var_authkey);

FETCH cur_device INTO var_userId , var_authkey;

END WHILE;

CLOSE cur_device;

end

============================================================================

昨天下班前发现有个存储过程有问题,无法正确的查询数据。

数据表和字段都是 utf8 存储的中文内容。在连接数据库后也使用 SET NAMES utf8; 设置了编码。但是在存储过程中无法查询中文内容的字段。由于一些逻辑处理的原因,存储过程使用了游标,同时定义了一些局部变量。

CREATE PROCEDURE `PROC_FOOBAR`(id INTEGER)

BEGIN

DECLARE user_id VARCHAR(32) ;

– 省略代码若干

END

user_id 在代码中参与了一个 查询 SELECT * FROM `table1` WHERE `UID` = user_id。

在存储过程中输出 user_id 发现英文内容正常,但是中文内容乱码。

开始以为存储过程的编码有问题,但是不使用变量的内容又正常。上网查了一下,有人遇到同样的问题:

但是显然,他的问题只要正确设置编码即可。

突然灵光一现,NND,character set 这个东西我忽略了。正解如下:

CREATE PROCEDURE `PROC_FOOBAR`(id INTEGER)

BEGIN

DECLARE code, user_id VARCHAR(32) CHARACTER SET utf8;

– 省略代码若干

END

kindeditor文本编辑器乱码中乱码问题解决办法

这个问题我已经解决掉了,不是更改内容的编码格式,只要将lang/zh_CN.js这个文件的编码转换成unicode即可 操作方法是用记事本打开这个文件,另存为,然后更改文件的编码格式为unico ...

关于jFinal开发中遇到的中文乱码问题解决办法

关于jFinal开发中遇到的中文乱码问题解决办法 设置tomcat的编码,修改

MySQL存储过程中的3种循环&comma;存储过程的基本语法&comma;ORACLE与MYSQL的存储过程&sol;函数的使用区别,退出存储过程方法

在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

ubuntu mysql emma中文乱码问题解决

ubuntu mysql emma中文乱码问题解决 emma默认用apt-get 安装的话,emma是不支持中文的,配置文件或直接修改emma程序源文件(python). apt-get安装emma ...

MYSQL存储过程中常使用的命令记录

MYSQL存储过程中常使用的命令记录 1.触发器trigger 查看:show triggers; 2.存储过程procedure 查看:show procedure status; 查看详细:sho ...

MYSQL存储过程中的IN、OUT和INOUT

MYSQL存储过程中的IN.OUT和INOUT,不能简单理解为一个方法的参数和返回值,而是面向整个过程上下文变量的. 一.MySQL 存储过程参数(in) 基本可以理解为传入function的参数,而 ...

Mysql 存储过程中使用多游标

Mysql 存储过程中使用多游标 drop procedure IF EXISTS test_proc_1; create procedure test_proc_1() begin ; ) ; ) ...

MySQL存储过程中使用SELECT …INTO语句为变量赋值

使用SELECT …INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT …INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT …INTO语句 ...

随机推荐

JavaSE18章&lowbar;JSON解析详解

一.JSON简介 JSON(JavaScript Object Notation),是一种轻量级的数据交换格式.JSON是存储和交换文本信息的,语法类似 XML.易于人阅读和编写,同时也易于机器解析和 ...

Revit中如何将视图过滤器传递到其它项目

在Revit中采用过滤器控制视图显示,利用过滤器给图元着色,利用过滤器控制视图显示或隐藏等,那么,在不同的项目中是否每次都要设置相同的过滤器,其实,Revit提供了这么一种在不同项目传递信息的方式,在 ...

python&lpar;4&rpar;-迭代器 和 生成器

迭代器是访问集合元素的一种方式.迭代器适合遍历一些巨大或无限的集合,比如几个G的文件.迭代器具有以下特点: 1. 访问者不需要关心迭代器内部的结构,只需通过__next__()方法不断取下一个内容 2 ...

Python 爬取 中关村CPU名字和主频

0.准备工作 1.相关教程 Python 爬虫系列教程:/1052.html Python Web课程:http://ww ...

开始补习JavaScript的第一天

JavaScript介绍: ①.JavaScript是一种解释性的,基于对象的脚本语言. ②.JavaScript是一种轻量级的编程语言,可以嵌入到html页面中,由浏览器来解释执行. ③.JavaS ...

AIOps 平台的误解,挑战及建议(下)— AIOps 挑战及建议

本文篇幅较长,分为上,中,下,三个部分进行连载.内容分别为:AIOps背景/所应具备技术能力分析(上),AIOps 常见的误解(中),挑战及建议(下). 前言 我大概是 5,6 年前开始接触 ITO ...

在web&period;xml中配置监听器来控制ioc容器生命周期

5.整合关键-在web.xml中配置监听器来控制ioc容器生命周期 原因: 1.配置的组件太多,需保障单实例 2.项目停止后,ioc容器也需要关掉,降低对内存资源的占用. 项目启动创建容器,项目停止销 ...

TerminateProcess的使用问题

最好时外部进程来结束目标进程,类似于任务管理器的结束目标进程方式.如果是自身进程想结束自身,可能不同版本的windows行为不一致,有一些能自身强制退出,有一些强制退出不了. 本来MSDN上就说了这个 ...

Java知多少(21)this关键字详解

this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性.例如: public class Demo{ public int x = 10; publi ...

用uart实现printf函数

硬件:JZ2440 实现功能:用putchr()函数实现printf() start.s nand.c uart.c uart.h my_stdio.c my_stdio.h main.c start ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。