前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle EBS学习:PL/SQL类型格式转换

Oracle EBS学习:PL/SQL类型格式转换

原创
作者头像
用户10510205
发布2023-04-26 16:21:22
1.2K0
发布2023-04-26 16:21:22
举报
文章被收录于专栏:Oracle Apex学习

在oracle PL/SQL 开发中,格式转换是很常见,也用的很多的;

1: 字符转数字 TO_NUMBER(char ) 字符转换到数字类型

​编辑

常见就上面这用;但是要注意,参数里的字符串必须是一个可以转换的 !,否则 To_number就会报错

往往我们会写一个函数作为它的升级版

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION cux_to_number
                            (x_var IN VARCHAR2) RETURN NUMBER
             AS 
                   vn_return NUMBER;
           BEGIN
              begin
                 vn_return := to_number(x_var);
                   exception –失败时候返回空值
                        when others then
                               vn_return := null;
                        end;
                    RETURN(vn_return);
               END;

2: TO_DATE(char[,’format’]) 字符转换到日期类型,格式说明符:要与前边要转换的字符串的格式要相同才能转换(匹配问题:格式和位数)。

代码语言:javascript
复制
SELECT
 EMPNO,
 ENAME,
 TO_CHAR( HIREDATE, 'YYYY"年"MM"月"DD' ) -- 日期轉字符串
FROM
 emp;

​编辑 ​

3TO_CHAR(date[,’format_model'[,nlsparams]]),将 数字,时间等转换成字符串 第二个参数可以省略,不指定格式,按系统默认格式输出。 区分大小写。

日期格式模式 可以套用to_date的,增加数字格式的如下 ​编辑

使用FM(在格式控制符前添加)符号可以去掉空格或是首位的零。 如果指定了NLSPARAMS,则它控制返回字符串的月和日分量所使用的语言。格式为: ‘NLS_DATA_LANGUAGE=language’,language指需要的语言。 例: select to_char(sysdate,’FMyyyy-mm-dd’) from dual; 格式控制符的类型: YYYY 四位的年 YEAR 年的拼写 MM 2位数字的月 MONTH 月的全名 MON 月名的前三个字符 DY 星期名的前三个字符 DAY 星期名的全称 DD 2位的天 时间格式控制符: HH24:MI:SS AM HH12:MI:SS PM 通过“”来实现加入特殊字符的格式控制符。 SELECT TO_CHAR(SYSDATE,’FMyyyy”年”mm”月”dd”日”‘) from dual; DDSPTH ~~ DD是格式控制符。 TH是序数词,将日期转换成英文的序数词拼写。 SP是基数词,将日期转换成英文的基数词拼写。 TO_CHAR(NUM[,’format_model'[,nlsparams]])转换数字 将NUMBER类型参数NUM转换成VARCHAR2类型。如果指定FORMAT,它会控制整个转换。 如果没有指定FORMAT,那么结果字符串中将包含和NUM中有效位的个数相同的字符。NLSPARAMS用来指定小数点和千分符及货币符号。它的格式可为:’NLS_NUMERIC_CHARS=’ ‘ dg ‘ ‘NLS_CURRENCY= ‘ ‘string’ ‘ ‘ d和g分别代表小数点和千分符。STRING代表货币符号。 数字格式控制符: 9 代表一位数字(替换符。有,数字显示;没有。不什么都显示。) 0 代表一位数字(有数字,显示;没有,强制显示0。) $ 美圆符号 L 本地货币 . 小数点 , 千分符 B 当整数部分为0时,将整数部分填充为空格。 例:B999 MI 返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MI S 返回一个前导符号或后继符号,正数为+,负数为-。 S9999 或 9999S PR 使用尖括号返回负数。正数将有前导或后继空格。999PR D 在指定位置返回一个小数点。两侧的9的个数指定了最大的位数。99D9 G 在指定位置返回千分符,G可以在FORMAT_model中出现多次。9G999G9 C 在指定位置返回ISO货币符号。C可以在FORMAT_model中出现多次。C99 L 在指定位置上返回本地货币符号。 L99 V 返回一个被乘以10的N次方的数值,这里N是V后边9的个数。99V99 EEEE 使用科学记数法返回该数值。9.99EEEE RM 使用大写的罗马数字表示返回该数值。 RM rm 使用小写的罗马数字表示返回该数值。 rm FM 返回不含前导和后继空格的数值。 FM99.09 格式控制符位数一定要大于或等于NUMBER的位数,不能小于。

类型格式转换_Oracle APEX社区-Oracle APEX教程-Oracle ebs社区-Oracle EBS教程-低代码-Oracle APEX中文-Oracle ebs论坛

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档