科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何在Oracle中建立汉字拼音对照表

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  REM   REM    建立汉语拼音库,根据汉字查拼音   REM    应用:如商品或者货物名称可以根据拼音去查。

作者:中国IT实验室 来源:中国IT实验室 2007年9月16日

关键字: 数据库 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;
  /

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件