如何在Oracle中建立汉字拼音对照表
REM REM 建立汉语拼音库,根据汉字查拼音 REM 应用:如商品或者货物名称可以根据拼音去查,数据可以按拼音排序 REM 作者:朱伟民 时间: 12:24 2001-10-07 REM -- -- 汉字拼音编码表 , 可以用程序读汉字库获得记录 -- DROP TABLE chinese_code; CREATE TABLE
REM
REM 建立汉语拼音库,根据汉字查拼音
REM 应用:如商品或者货物名称可以根据拼音去查,数据可以按拼音排序
REM 作者:朱伟民 时间: 12:24 2001-10-07
REM
--
-- 汉字拼音编码表 , 可以用程序读汉字库获得记录
--
DROP TABLE chinese_code;
CREATE TABLE chinese_code(
ascii_code INTEGER, -- 汉字的 ASCII 码
chinese_word VARCHAR2(2), -- 汉字
chinese_anno VARCHAR2(5), -- 汉语拼音
CONSTRAINT PK_chinese_code PRIMARY KEY(ascii_code),
CONSTRAINT CK_chinese_code1 CHECK("CHINESE_WORD" IS NOT NULL))
PCTFREE 5
PCTUSED 75
TABLESPACE users
STORAGE(INITIAL 50K
NEXT 50K
MINEXTENTS 2
MAXEXTENTS 100
PCTINCREASE 75)
ENABLE PRIMARY KEY USING INDEX
TABLESPACE INDX
PCTFREE 5;
ALTER TABLE chinese_code DISABLE PRIMARY KEY;
INSERT INTO chinese_code VALUES(ASCII('中'),'中','zhong');
INSERT INTO chinese_code VALUES(ASCII('华'),'华','hua');
INSERT INTO chinese_code VALUES(ASCII('人'),'人','ren');
INSERT INTO chinese_code VALUES(ASCII('民'),'民','ming');
INSERT INTO chinese_code VALUES(ASCII('共'),'共','gong');
INSERT INTO chinese_code VALUES(ASCII('和'),'和','he');
INSERT INTO chinese_code VALUES(ASCII('国'),'国','guo');
COMMIT;
ALTER TABLE chinese_code ENABLE PRIMARY KEY;
SELECT * FROM chinese_code;
--
-- 根据汉字查询拼音函数
--
CREATE OR REPLACE FUNCTION query_anno(
inputStr IN VARCHAR2)
RETURN VARCHAR2 AS
outputStr chinese_code.chinese_anno%TYPE;
BEGIN
SELECT chinese_anno INTO outputStr FROM chinese_code
WHERE ascii_code = ASCII(inputStr);
RETURN outputStr;
EXCEPTION
WHEN OTHERS THEN
RETURN ';
END;
/
原文转自:http://www.ltesting.net
|