当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

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


  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;
  /
相关内容
赞助商链接