oracle16进制转时间,sql – 如何将十六进制’YMD’日期转换为可读日期?

Oracle和

Java相互之间相当好,如果你感觉很冒险,这可能是一个新想法. Java很容易做到这一点,但我远离了一个oracle盒子,无法测试.这真的很痛,我现在不在甲骨文机前.为了确保我记得正确,我从这里开始使用步骤

http://www.dba-oracle.com/tips_oracle_sqlj_loadjava.htm

/****

*java and oracle playing together.

*/

import java.util.Date;

public class hex2Date{

//this is if you want to call the java function from a command line outside of oracle

public static void main (String args[]) {

System.out.println ( convert (args[0]) );

}

public static Date convert(String inHexString){

try{

Date dateResult = new Date(Long.parseLong(inHexString,16));

}catch (NumberFormatException e){

// do something with the exception if you want, recommend at least throwing it.

//throw(e,'some extra message');

}

return dateResult;

}

}

将该文件保存为’yourJava’目录中的Hex2Date.java,并从该目录中的cmd行输出:

javac Hex2Date.java

现在输入:

java Hex2Date.java 0x4A273F

如果你得到了正确的日期和结果,让我们告诉oracle我们的小功能.

你首先需要一些用户权利:

GRANT JAVAUSERPRIV给您的用户;

输入这个:

loadjava -user scott / tiger -resolve Hex2Date.class

现在将它包装在pl / sql中,这样你就可以在pl / sql中调用它:

/* java function plsql wrapper: hex2Date.sf */

CREATE OR REPLACE FUNCTION hex2Date ( inHexString IN VARCHAR2) RETURN DATE AS LANGUAGE JAVA NAME 'Hex2Date.convert(java.lang.String) return Date'; /

现在,从sql提示符运行它:SQL> exec DBMS_OUTPUT.PUT_LINE(hex2Date(‘0x4A273F’))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值