真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle怎么轉(zhuǎn)換漢字,oracle 漢字

如何實(shí)現(xiàn)oracle數(shù)據(jù)庫中英文字符集轉(zhuǎn)換

如何更改Oracle字符集國內(nèi)最常用的Oracle字符集ZHS16GBK(GBK 16-bit Simplified Chinese)能夠支持繁體中文,并且按照2個(gè)字符長(zhǎng)度存儲(chǔ)一個(gè)漢字。UTF8字符集是多字節(jié)存儲(chǔ),1個(gè)漢字(簡(jiǎn)體、繁體)有時(shí)采用3個(gè)字符長(zhǎng)度存儲(chǔ)。Oracle支持字符集的更改,但是UTF8是Oracle中最大的字符集,也就是說UTF8是ZHS16GBK的嚴(yán)格超集。對(duì)于子集到超集的轉(zhuǎn)換,Oracle是允許的,但是對(duì)于超集到子集的轉(zhuǎn)換是不允許的。一般對(duì)于超集到子集的轉(zhuǎn)換,建議是通過dbca刪除原來的數(shù)據(jù)庫,重新再建庫,選擇正確的字符集,然后導(dǎo)入備份。我的方案是:先備份數(shù)據(jù),然后強(qiáng)制轉(zhuǎn)換字符集從UTF8到ZHS16GBK,然后導(dǎo)入備份數(shù)據(jù)。如果不行,才來重新建庫,設(shè)置字符集ZHS16GBK,導(dǎo)入備份數(shù)據(jù)。如果這還不行,就把更改字符集從ZHS16GBK到UTF8(這是安全的),再導(dǎo)入備份數(shù)據(jù),恢復(fù)到原始狀況。這樣就有可能避開重新建庫的麻煩。1. 備份數(shù)據(jù)庫中所有用戶的數(shù)據(jù)以oracle用戶登陸,執(zhí)行以下命令# export NLS_LANG = “SIMPLIFIED CHINESE_CHINA.UTF8”保持與數(shù)據(jù)庫服務(wù)器端一致,這樣在exp導(dǎo)出時(shí),就不會(huì)存在字符的轉(zhuǎn)換了,備份最原始的數(shù)據(jù)。2. 評(píng)估UTF8轉(zhuǎn)換成ZHS16GBK的風(fēng)險(xiǎn)轉(zhuǎn)換之前,要使用Oracle的csscan工具對(duì)數(shù)據(jù)庫掃描,評(píng)估字符集轉(zhuǎn)換前后,數(shù)據(jù)有可能的損壞情況。如果評(píng)估情況糟糕,那就絕對(duì)要放棄了。先安裝屬于 CSMIG 用戶的一套表和過程。以oracle用戶登陸UNIX,#sqlplus “/ as sysdab”SQL@$ORACLE_HOME/ rdbms/admin/csminst.sqlSQLexit# $ORACLE_HOME\bin\csscan -help可以更清楚如何使用csscan。# $ORACLE_HOME/bin/csscan system/sunday user=mmsc FROMCHAR=UTF8 TOCHAR=ZHS16GBK ARRAY=102400 PROCESS=3 csscan.log以上命令意思是掃描用戶:mmsc中的所有數(shù)據(jù),從字符集UTF8更改為ZHS16GBK的轉(zhuǎn)換情況。然后得到三個(gè)文件:scan.txt、scan.out、scan.err。查看scan.out,scan.err,可以看出mmsc用戶下的所有的數(shù)據(jù)都是可以轉(zhuǎn)換的,并且沒有出現(xiàn)轉(zhuǎn)換“Exceptional”的情況,因此可以更放心一點(diǎn)。3. 更改數(shù)據(jù)庫的字符集為ZHS16GBK前面說過,通過命令“Alter Database Characeter Set XXXX”,實(shí)現(xiàn)從超集到子集的轉(zhuǎn)換,在Oracle是不允許的。但是該命令,提供這樣的命令方式:Alter Database Character Set INTERNAL_CONVERT/ INTERNAL_USE XXXX這是Oracle的非公開命令?!霸谑褂眠@個(gè)命令時(shí),Oracle會(huì)跳過所有子集及超集的檢查,在任意字符集之間進(jìn)行強(qiáng)制轉(zhuǎn)換,所以,使用這個(gè)命令時(shí)你必須十分小心,你必須清楚這一操作會(huì)帶來的風(fēng)險(xiǎn)”。以oracle用戶登陸UNIX,#sqlplus “/ as sysdba”SQL SHUTDOWN IMMEDIATE; SQL STARTUP MOUNT; SQL ALTER SESSION SET SQL_TRACE=TRUE;SQL ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL ALTER DATABASE OPEN; SQL ALTER DATABASE CHARACTER SET ZHS16GBK; //如果不使用“INTERNAL_USE”參數(shù),系統(tǒng)會(huì)提示出錯(cuò)://ERROR at line 1://ORA-12712: new character set must be a superset of old character setSQL ALTER SESSION SET SQL_TRACE=FALSE;SQL SHUTDOWN IMMEDIATE; SQL STARTUP;此時(shí),檢查一下數(shù)據(jù)庫的字符集是否更改過來SQL select value$ from props$ where name=’NLS_CHARACTERSET’;VALUE$-----------------ZHS16GBK緊接著檢查一下數(shù)據(jù)庫中簡(jiǎn)體中文、繁體中文是否正常,不會(huì)出現(xiàn)亂碼。SQLselect spid,spname,spshortname from spinfovisual_hk …...非常不幸,我看到了一堆亂碼,這也證明了Oracle不支持字符集從超集到子集的更改,當(dāng)時(shí)心里很緊張,很怕失敗,從而恢復(fù)到原樣。但是根據(jù)以前的驗(yàn)證,把UTF8下的備份導(dǎo)入到ZHS16GBK中去,是OK的,所以繼續(xù)嘗試。4. 導(dǎo)入備份的用戶數(shù)據(jù)還是以oracle用戶登陸UNIX, 先刪除庫中的用戶mmsc:#sqlplus “/ as sysdba”SQLdrop user mmsc cascade;SQLexit再運(yùn)行createuser.sql,生成mmsc用戶。然后使用原來的備份文件,導(dǎo)入到mmsc用戶中:注意:先設(shè)置NLS_LANG要與當(dāng)前數(shù)據(jù)庫的一致:ZHS16GBK。這樣,導(dǎo)出時(shí)用戶會(huì)話的NLS_LANG為UTF8,與原先的數(shù)據(jù)庫字符集一致;現(xiàn)在為ZHS16GBK,與此時(shí)的數(shù)據(jù)庫字符集一致。這樣,導(dǎo)入時(shí),就會(huì)進(jìn)行字符轉(zhuǎn)換。# export NLS_LANG = “SIMPLIFIED CHINESE_CHINA.ZHS16GBK”#imp mmsc/mmsc@mdspdb file=DSMPD113_user_mmsc.dmp ignore=y fromuser=mmsc touser=mmsc馬上查看數(shù)據(jù)庫中簡(jiǎn)體、繁體中文,哈哈,沒有亂碼了,一切顯示正常。緊接著進(jìn)行驗(yàn)證,也證明了:1個(gè)漢字此時(shí)只占用2個(gè)字符長(zhǎng)度。問題解決了!

創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè),為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。

如何將Oracle數(shù)據(jù)庫中的Unicode轉(zhuǎn)換為中文

過程名 : decodeUnicode2CN

功能 : 將unicode編碼格式轉(zhuǎn)換成中文

輸入?yún)?shù) :text :unicode編碼內(nèi)容

輸出參數(shù) :中文輸出

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

FUNCTION DECODEUNICODE2CN(TEXT IN VARCHAR2) RETURN VARCHAR2 IS

V_SQL VARCHAR2(32765); --編碼轉(zhuǎn)換sql

TEXT_BUFFER VARCHAR2(32765); --輸出中文

BEGIN

V_SQL := 'select unistr(REPLACE(''' || TEXT ||

''',''\u'',''\'')) from dual ';

EXECUTE IMMEDIATE V_SQL

INTO TEXT_BUFFER;

RETURN TEXT_BUFFER;

END;

oracle sql語句中,有沒有能夠?qū)⒔Y(jié)果集中數(shù)字替換成漢字的函數(shù)?

oracle sql語句中,有能夠?qū)⒔Y(jié)果集中數(shù)字替換成漢字的函數(shù),用decode()函數(shù)。

1,SQL是Oracle數(shù)據(jù)庫對(duì)SQL語句的擴(kuò)展。它是一種程序語言,叫做過程化SQL語言。

2,在普通SQL語句的使用上增加了編程語言的特點(diǎn),所以PL/SQL就是把數(shù)據(jù)操作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、循環(huán)等操作實(shí)現(xiàn)復(fù)雜的功能或者計(jì)算的程序語言。

3,通過多條SQL語句實(shí)現(xiàn)功能時(shí),每條語句都需要在客戶端和服務(wù)端傳遞,而且每條語句的執(zhí)行結(jié)果也需要在網(wǎng)絡(luò)中進(jìn)行交互,占用了大量的網(wǎng)絡(luò)帶寬,消耗了大量網(wǎng)絡(luò)傳遞的時(shí)間。在網(wǎng)絡(luò)中傳輸?shù)哪切┙Y(jié)果,往往都是中間結(jié)果,而不是我們所關(guān)心的。

4,在整個(gè)過程中網(wǎng)絡(luò)里只傳輸了很少的數(shù)據(jù),減少了網(wǎng)絡(luò)傳輸占用的時(shí)間,所以整體程序的執(zhí)行性能會(huì)有明顯的提高。

5,PL/SQL的使用,使SQL成為一種高級(jí)程序設(shè)計(jì)語言,支持高級(jí)語言的塊操作,條件判斷,循環(huán)語句,嵌套等,與數(shù)據(jù)庫核心的數(shù)據(jù)類型集成,使SQL 的程序設(shè)計(jì)效率更高.

數(shù)據(jù)庫oracle(plsql)怎么把漢字轉(zhuǎn)化成拼音首字母,如果非漢字字符 (英文or數(shù)字),返回原字符不變

oracle漢字轉(zhuǎn)拼音(獲得全拼/拼音首字母/拼音截取等)效果如下: Oracle 字符集 GBK 沒有問題 , UTF -8 需要修改一下Sql代碼

--oracle漢字轉(zhuǎn)拼音 PACKAGE

--1.獲得全拼

SELECT GETHZPY.GETHZFULLPY('漢字') FROM DUAL;結(jié)果 : HanZi

--2.拼音首字母

SELECT GETHZPY.GETHZPYCAP('漢字') FROM DUAL;結(jié)果 : HZ

--3.拼音截取等

SELECT GETHZPY.GETHZPYCAPSUBSTR('漢字', 0, 1) FROM DUAL;結(jié)果 : H

代碼部分太長(zhǎng)掛在附件上 以下代碼如果在 PL/SQL Developer 執(zhí)行的話,選擇 Command Window 粘貼.

附件在最下面.

oracle漢字轉(zhuǎn)拼音package_獲得全拼——拼音首字母_拼音截取等.zip (35.9 KB)

新手請(qǐng)教:oracle中怎么把數(shù)字轉(zhuǎn)換成漢字

用decode()函數(shù)。

具體語句為:select decode(flag,1,'是',0,'否') from table,語句的意思是選擇表中的“1”替換為“是”,“0”替換為“否”。


文章標(biāo)題:oracle怎么轉(zhuǎn)換漢字,oracle 漢字
網(wǎng)頁地址:http://weahome.cn/article/hooijs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部