WHEN 'YMD' THEN
             v_year := to_char(SYSDATE, 'Y');
             v_month := FN_CONVERT_DECIMAL_TO_BASE(to_number(to_char(SYSDATE, 'MM')),32,1);
             v_day := FN_CONVERT_DECIMAL_TO_BASE(to_number(to_char(SYSDATE, 'DD')),32,1);
             v_str := v_year || v_month || v_day;

WHEN 'YMDD' THEN 
              v_year := to_char(SYSDATE, 'Y');
              v_month := FN_CONVERT_DECIMAL_TO_BASE(to_number(to_char(SYSDATE, 'MM')),16,1);
              v_day :=to_char(SYSDATE, 'DD');

FUNCTION FN_CONVERT_DECIMAL_TO_BASE (P_DECIMAL_NUM IN INTEGER, P_DIGITAL_TYPE IN VARCHAR2, P_LEN IN INTEGER) RETURN VARCHAR2

IS    v_result_str        VARCHAR2 (20)   := '0';

v_replace_str       VARCHAR2 (8000);

v_baseindex         INT             := 1;

v_quotient          INT             := p_decimal_num;

v_digit             INT             := P_LEN - 1;

v_digit_loop        INT             := 0;

v_basenumber        INT             := 0;

v_basebeginnumber   INT             := 10;

v_decodesql         VARCHAR2 (1000);

v_remainder         INT             := 0;

v_baseloopnumber    INT             := 0;

v_base_10            VARCHAR2(10) := '0123456789';

v_base_16            VARCHAR2(16) := '0123456789ABCDEF';

v_base_30            VARCHAR2(30) := '0123456789ABCDEFGHJKLMNPQRTWXY';

v_base_32            VARCHAR2(32) := '0123456789ABCDEFGHJKLMNPRSTVWXYZ';

v_base_33            VARCHAR2(33) := '0123456789ABCDEFGHJKLMNPQRSTVWXYZ';

v_base_34            VARCHAR2(34) := '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ';

v_base_36            VARCHAR2(36) := '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';

v_base_code          varchar2(62) := '';

BEGIN

CASE

P_DIGITAL_TYPE     WHEN '10' THEN

v_basenumber :=  LENGTH(v_base_10);

v_base_code  := v_base_10;

WHEN '16' THEN

v_basenumber :=  LENGTH(v_base_16);

v_base_code  := v_base_16;

WHEN '30' THEN

v_basenumber :=  LENGTH(v_base_30);

v_base_code  := v_base_30;

WHEN '32' THEN

v_basenumber :=  LENGTH(v_base_32);

v_base_code  := v_base_32;

WHEN '33' THEN

v_basenumber :=  LENGTH(v_base_33);

v_base_code  := v_base_33;

WHEN '34' THEN

v_basenumber :=  LENGTH(v_base_34);

v_base_code  := v_base_34;

WHEN '36' THEN

v_basenumber :=  LENGTH(v_base_36);

v_base_code  := v_base_36;

END CASE;

v_baseloopnumber := v_basenumber - 10;

v_digit_loop := v_digit;

IF v_basenumber = 10

THEN

RETURN LPAD(P_DECIMAL_NUM,P_LEN,'0');

ELSE

v_result_str := LPAD(v_result_str,v_digit,'0');

END IF;

LOOP

v_decodesql :=             v_decodesql          || ''''          || v_basebeginnumber          || ''','''          || SUBSTR (v_base_code, v_basebeginnumber + 1, 1)          || ''',';

v_basebeginnumber := v_basebeginnumber + 1;

v_baseloopnumber := v_baseloopnumber - 1;

EXIT WHEN v_baseloopnumber = 0;    END LOOP;

LOOP

v_remainder := MOD (v_quotient, v_basenumber);

EXECUTE IMMEDIATE    'select Decode('                         || v_remainder                         || ' ,'                         || v_decodesql                         || v_remainder                         || ')    From dual '                    INTO v_replace_str;

v_result_str :=             SUBSTR (v_result_str, 0, v_digit_loop)          || v_replace_str          || SUBSTR (v_result_str, v_digit_loop + 2, v_digit - v_digit_loop);       v_quotient := FLOOR (v_quotient / v_basenumber);       v_digit_loop := v_digit_loop - 1;       EXIT WHEN v_digit_loop < 0;    END LOOP;

RETURN v_result_str; END FN_CONVERT_DECIMAL_TO_BASE;

ORACLE 用32進制表示月中的一天的更多相关文章

  1. Oracle 中的进制转换

    Oracle 中的进制转换 */--> Oracle 中的进制转换 Table of Contents 1. 进制名 2. 10进制与16进制互相转换 2.1. 10进制转换为16进制 2.2. ...

  2. 64位主机64位oracle下装32位客户端ODAC(NFPACS版)

    64位主机64位oracle下装32位客户端ODAC(NFPACS版) by dd 1.下载Oracle Data Access Components(ODAC) Xcopy的两个版本: x86:(我 ...

  3. 51nod1086(多重背包&二進制)

    題目鏈接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1086 題意:中文題誒- 思路:很顯然這是一道多重背包題,不過這 ...

  4. php利用32进制实现对id加密解密

    前言 最近在项目中遇到一个问题,当前用户分享一个邀请码给好友,好友根据邀请码注册成为新用户之后,则成为当前用户的下级,特定条件下,可以得到下级用户的一系列返利.这里要实现的就是根据当前用户的id,生成 ...

  5. (64位oracle使用32位的PLSQL)安装64位的oracle数据库软件,使用32位的PLSQL Developer连接方法

    因为PLSQL Developer没有提供64位的,于是依据网上的资料做了一下整理,发上来 1.下载并安装Oracle 11g R2 64位,在server上安装时忽略硬件检測失败信息: 2.下载Or ...

  6. Windows Server 2008 R2 64位操作系统安装Oracle 11g 64位数据库,在客户终端上安装Oracle 11g 32位,才能安装P/L Sql Developer并配置

    1.下载Oracle 11g R2 for Windows的版本 下载地址: http://www.oracle.com/technetwork/database/enterprise-edition ...

  7. 让 Oracle 11g 32位运作在64位 Windows 上

    并非不能运行. 本人安装版未曾尝试,但绿色版倒是运行成功了. 很简单:注册表的位置发生了变化而已! 默认(32位.64位),oracle会读取以下注册表的位置:      [HKEY_LOCAL_MA ...

  8. Guid和Oracle中16进制字符的转换

    我们知道在Oracle中存的guid是16进制字符串,而在我们的C#代码中存的是guid对象,这样我会就要进行转换, 下面给出了两者进行转换的方法: public class Guid2RawProc ...

  9. [Oracle] - 使用32位 PLSQL(PL/SQL Developer)登陆64位Oracle失败之解决

    配置环境 Oracle服务端oracle_winx64_12c_database.iso Oracle客户端instantclient-basiclite-nt-12.1.0.1.0.zip 集成开发 ...

随机推荐

  1. 4_1 古老的密码(UVa1339)<排序>

    古罗马帝国与各部门有一个强有力的政府系统,包括一个秘密服务部门.重要的文件以加密的形式发送防止窃听.在那个时代最流行的密码被称为替代密码和置换密码.例如,应用替代密码,改变所有字母“A”到“Y”字母表 ...

  2. Windows事件ID

    51 Windows 无法找到网络路径.请确认网络路径正确并且目标计算机不忙或已关闭.如果 Windows 仍然无法找到网络路径,请与网络管理员联系. 52 由于网络上有重名,没有连接.请到“控制面板 ...

  3. Cisco AP-如何调整LAP信道

    GUI方法: CLI的方法:根据对应的接口去调整信道,信道带宽,传输功率等信息吧.(Cisco Controller) >config slot 0 antenna Configures the ...

  4. Nexus-配置VDC

    1.配置资源模板This example shows how to configure a VDC resource template: vdc resource template TemplateA ...

  5. Java面向对象编程 -2.2

    构造方法与匿名对象 现在的程序在使用类的时候一般都按照了如下的步骤进行: 声明并实例化对象,这个时候实例化对象中的属性并没有任何的数据存在,都是其对于数据类型的默认值 需要通过一系列的setter方法 ...

  6. 【SSM - druid 】配置与使用

    web.xml 配置 <!-- druid的监控页面配置开始 --> <servlet> <servlet-name>StatViewServlet</ser ...

  7. Educational Codeforces Round 68 (Rated for Div. 2)D(SG函数打表,找规律)

    #include<bits/stdc++.h>using namespace std;int sg[1007];int main(){ int t; cin>>t; while ...

  8. 解决sublime不能安装packages的问题

    问题如下:该问题产生的原因是因为默认的配置中无法访问 "https://packagecontrol.io/channel_v3.json"该文件造成的 解决: 1.下载 chan ...

  9. Mysql基本用法-left join、right join、 inner join、子查询和join-02

    left join #左连接又叫外连接 left join 返回左表中所有记录和右表中连接字段相等的记录  test_user表 phpcvs表 SQL: select * from test_use ...

  10. scrapy-redis分布式

    scrapy是python界出名的一个爬虫框架,提取结构性数据而编写的应用框架,可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 虽然scrapy 能做的事情很多,但是要做到大规模的分 ...