网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.如何判断一个字符串是否为数字或.
.如何建立一个与现存数据库相同,.
.Oracle数据库10g环境下修改VIP地.
.快速解决Oracle数据库10g导出错误.
.Linux下如何优化Oracle.
.Oracle触发器详细介绍.
.oracle升级后exp出现oracle 942错.
.redhat AD2.1架站全攻略——菜鸟.
.不同平台的数据库异步I/O的使用.
.浅谈备份策略.
.Linux 平台上之 Multipath Routi.
.如何设置用户密码过期时间.
.Oracle9i初始化参数中文说明(7).
.Install Oracle 9i/10g On RHEL .
.如何在Linux下解压Winzip格式的文.
.在 Linux 上安装 Oracle、PHP 和.
.Oracle 9i 在 Red Hat 7.1 和 7..
.关于“专用服务器进程”和“多线.
.Oracle中国前员工述说公司高层内.
.利用Java存储过程简化数据库操作.

Oracle中十进制与十六进制转换程序

发表日期:2008-2-9



  CREATE OR REPLACE PROCEDURE dec2hex (in_num IN NUMBER, out_hex OUT VARCHAR2)
  IS
    TYPE vc2tab_type IS TABLE OF VARCHAR2(1)
     INDEX BY BINARY_INTEGER;
  
    hextab            vc2tab_type;
    v_num             NUMBER;
    v_hex             VARCHAR2(200);
  
  /*
  Author: Jonas Nordstrom
  */
  BEGIN
    IF in_num IS NULL THEN RETURN NULL; END IF; 
  
    hextab (0) := '0';
    hextab (1) := '1';
    hextab (2) := '2';
    hextab (3) := '3';
    hextab (4) := '4';
    hextab (5) := '5';
    hextab (6) := '6';
    hextab (7) := '7';
    hextab (8) := '8';
    hextab (9) := '9';
    hextab (10) := 'A';
    hextab (11) := 'B';
    hextab (12) := 'C';
    hextab (13) := 'D';
    hextab (14) := 'E';
    hextab (15) := 'F';
    v_num := in_num;
  
    WHILE v_num >= 16
    LOOP
     v_hex := hextab (MOD (v_num, 16)) v_hex;
     v_num := TRUNC (v_num / 16);
    END LOOP;
  
    v_hex := hextab (MOD (v_num, 16)) v_hex;
    out_hex := v_hex;
  END;  -- dec2hex
  /
  
  CREATE OR REPLACE FUNCTION hextointeger (h VARCHAR2)
    RETURN PLS_INTEGER
  IS
  BEGIN
    IF NVL (LENGTH (h), 1) = 1
    THEN
     RETURN INSTR ('0123456789ABCDEF', h) - 1;
    ELSE
     RETURN 16 * hextointeger (SUBSTR (h, 1, LENGTH (h) - 1)) +
         INSTR ('0123456789ABCDEF', SUBSTR (h, -1)) -
         1;
    END IF;
  END hextointeger;
  /
  
  CREATE OR REPLACE FUNCTION integertohex (n pls_integer)
    RETURN VARCHAR2
  IS
  BEGIN
    IF n > 0
    THEN
     RETURN integertohex (TRUNC (n / 16))
         SUBSTR ('0123456789ABCDEF', MOD (n, 16) + 1, 1);
    ELSE
     RETURN NULL;
    END IF;
  END integertohex;
  /
上一篇:如何导入指定表 人气:1089
下一篇:Oracle 恢复备份查询手册 人气:642
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐