如何在Oracle中建立汉字拼音对照表

文章作者 100test 发表时间 2007:12:15 13:15:56
来源 100Test.Com百考试题网


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.
  /

相关文章


安装好Oracle后SQL*Plus的操作初步
如何在Oracle中建立汉字拼音对照表
从V$DB_CACHE_ADVICE中设置数据缓冲大小
OracleNet8网络配置和联接
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛