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

发表于:2007-05-25来源:作者:点击数: 标签: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