日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時間:2024/9/27 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

中文亂碼無論在何時都是一個頭疼的問題,mysql的存儲過程參數(shù)也同樣存在這個問題。

1、直接使用insert?into語句沒問題,能夠正常插入漢字。

2、把insert?into語句移到Procedure中后,就無法插入漢字了。在客戶端軟件中插入的漢字總是為亂碼,英文和數(shù)字沒問題。

3、如果在jdbc中調(diào)用這個Procedure總是報錯:

在查閱了很多相關(guān)資料后,發(fā)現(xiàn)只需要改動procedure的參數(shù)的定義就OK了,改動為:在varchar參數(shù)后面加入:?character?set?指定編碼。由于服務(wù)器編碼為gbk,我指定為:

declare? v_title?varchar(200)??character?set?gbk

再執(zhí)行插入時就不會亂碼了

寫個完整的 存儲過程 供參考

create procedure copyDevTO_authKey()

begin

DECLARE var_userId int;

DECLARE var_authkey varchar(512)?character?set?gbk;

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

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

昨天下班前發(fā)現(xiàn)有個存儲過程有問題,無法正確的查詢數(shù)據(jù)。

數(shù)據(jù)表和字段都是 utf8 存儲的中文內(nèi)容。在連接數(shù)據(jù)庫后也使用 SET NAMES utf8; 設(shè)置了編碼。但是在存儲過程中無法查詢中文內(nèi)容的字段。由于一些邏輯處理的原因,存儲過程使用了游標(biāo),同時定義了一些局部變量。

CREATE PROCEDURE `PROC_FOOBAR`(id INTEGER)

BEGIN

DECLARE user_id VARCHAR(32) ;

– 省略代碼若干

END

user_id 在代碼中參與了一個 查詢 SELECT * FROM `table1` WHERE `UID` = user_id。

在存儲過程中輸出 user_id 發(fā)現(xiàn)英文內(nèi)容正常,但是中文內(nèi)容亂碼。

開始以為存儲過程的編碼有問題,但是不使用變量的內(nèi)容又正常。上網(wǎng)查了一下,有人遇到同樣的問題:

但是顯然,他的問題只要正確設(shè)置編碼即可。

突然靈光一現(xiàn),NND,character set 這個東西我忽略了。正解如下:

CREATE PROCEDURE `PROC_FOOBAR`(id INTEGER)

BEGIN

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

– 省略代碼若干

END

kindeditor文本編輯器亂碼中亂碼問題解決辦法

這個問題我已經(jīng)解決掉了,不是更改內(nèi)容的編碼格式,只要將lang/zh_CN.js??這個文件的編碼轉(zhuǎn)換成unicode即可 操作方法是?用記事本打開這個文件,另存為,然后更改文件的編碼格式為unico ...

關(guān)于jFinal開發(fā)中遇到的中文亂碼問題解決辦法

關(guān)于jFinal開發(fā)中遇到的中文亂碼問題解決辦法 設(shè)置tomcat的編碼,修改

MySQL存儲過程中的3種循環(huán)&comma;存儲過程的基本語法&comma;ORACLE與MYSQL的存儲過程&sol;函數(shù)的使用區(qū)別,退出存儲過程方法

在MySQL存儲過程的語句中有三個標(biāo)準(zhǔn)的循環(huán)方式:WHILE循環(huán),LOOP循環(huán)以及REPEAT循環(huán).還有一種非標(biāo)準(zhǔn)的循環(huán)方式:GOTO,不過這種循環(huán)方式最好別用,很容易引起程序的混亂,在這里就不錯具體 ...

ubuntu mysql emma中文亂碼問題解決

ubuntu mysql emma中文亂碼問題解決 emma默認(rèn)用apt-get 安裝的話,emma是不支持中文的,配置文件或直接修改emma程序源文件(python). apt-get安裝emma ...

MYSQL存儲過程中常使用的命令記錄

MYSQL存儲過程中常使用的命令記錄 1.觸發(fā)器trigger 查看:show triggers; 2.存儲過程procedure 查看:show procedure status; 查看詳細(xì):sho ...

MYSQL存儲過程中的IN、OUT和INOUT

MYSQL存儲過程中的IN.OUT和INOUT,不能簡單理解為一個方法的參數(shù)和返回值,而是面向整個過程上下文變量的. 一.MySQL 存儲過程參數(shù)(in) 基本可以理解為傳入function的參數(shù),而 ...

Mysql 存儲過程中使用多游標(biāo)

Mysql 存儲過程中使用多游標(biāo) drop procedure IF EXISTS test_proc_1; create procedure test_proc_1() begin ; ) ; ) ...

MySQL存儲過程中使用SELECT …INTO語句為變量賦值

使用SELECT …INTO語句為變量賦值 在MySQL存儲過程中,可以使用SELECT …INTO語句對變量進(jìn)行賦值,該語句在數(shù)據(jù)庫中進(jìn)行查詢,并將得到的結(jié)果賦值給變量.SELECT …INTO語句 ...

隨機(jī)推薦

JavaSE18章&lowbar;JSON解析詳解

一.JSON簡介 JSON(JavaScript Object Notation),是一種輕量級的數(shù)據(jù)交換格式.JSON是存儲和交換文本信息的,語法類似 XML.易于人閱讀和編寫,同時也易于機(jī)器解析和 ...

Revit中如何將視圖過濾器傳遞到其它項目

在Revit中采用過濾器控制視圖顯示,利用過濾器給圖元著色,利用過濾器控制視圖顯示或隱藏等,那么,在不同的項目中是否每次都要設(shè)置相同的過濾器,其實,Revit提供了這么一種在不同項目傳遞信息的方式,在 ...

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

迭代器是訪問集合元素的一種方式.迭代器適合遍歷一些巨大或無限的集合,比如幾個G的文件.迭代器具有以下特點: 1. 訪問者不需要關(guān)心迭代器內(nèi)部的結(jié)構(gòu),只需通過__next__()方法不斷取下一個內(nèi)容 2 ...

Python 爬取 中關(guān)村CPU名字和主頻

0.準(zhǔn)備工作 ? 1.相關(guān)教程 ? ??? ??Python 爬蟲系列教程:http://cuiqingcai.com/1052.html ? ??? ??Python Web課程:http://ww ...

開始補習(xí)JavaScript的第一天

JavaScript介紹: ①.JavaScript是一種解釋性的,基于對象的腳本語言. ②.JavaScript是一種輕量級的編程語言,可以嵌入到html頁面中,由瀏覽器來解釋執(zhí)行. ③.JavaS ...

AIOps 平臺的誤解,挑戰(zhàn)及建議(下)— AIOps 挑戰(zhàn)及建議

本文篇幅較長,分為上,中,下,三個部分進(jìn)行連載.內(nèi)容分別為:AIOps?背景/所應(yīng)具備技術(shù)能力分析(上),AIOps 常見的誤解(中),挑戰(zhàn)及建議(下). 前言 我大概是 5,6 年前開始接觸 ITO ...

在web&period;xml中配置監(jiān)聽器來控制ioc容器生命周期

5.整合關(guān)鍵-在web.xml中配置監(jiān)聽器來控制ioc容器生命周期 原因: 1.配置的組件太多,需保障單實例 2.項目停止后,ioc容器也需要關(guān)掉,降低對內(nèi)存資源的占用. 項目啟動創(chuàng)建容器,項目停止銷 ...

TerminateProcess的使用問題

最好時外部進(jìn)程來結(jié)束目標(biāo)進(jìn)程,類似于任務(wù)管理器的結(jié)束目標(biāo)進(jìn)程方式.如果是自身進(jìn)程想結(jié)束自身,可能不同版本的windows行為不一致,有一些能自身強制退出,有一些強制退出不了. 本來MSDN上就說了這個 ...

Java知多少(21)this關(guān)鍵字詳解

this 關(guān)鍵字用來表示當(dāng)前對象本身,或當(dāng)前類的一個實例,通過 this 可以調(diào)用本對象的所有方法和屬性.例如: public class Demo{ public int x = 10; publi ...

用uart實現(xiàn)printf函數(shù)

硬件:JZ2440 實現(xiàn)功能:用putchr()函數(shù)實現(xiàn)printf() start.s nand.c uart.c uart.h my_stdio.c my_stdio.h main.c start ...

總結(jié)

以上是生活随笔為你收集整理的linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。