1、TO_CHAR(x[,formate])函数,将数字型转换为字符串类型。
2、TO_NUMBER(x[,formate])函数将一个字符串转换成一个数字。formate参数可以是以上例子中的formate字符串。而且TO_NUMBER和TO_CHAR的过程正好相反。
sql 代码
- DECLARE
- V_INTA NUMBER :=12345.67;
- BEGIN
- --普通输出
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA));
- --整数三位用逗号隔开
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'99,999.99'));
- --前面增加$符号
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'$99,999.99'));
- --前面补俩0
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'0099,999.99'));
- --后面补俩0
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'$99,999.9900'));
- --小于1的小数,去掉整数0的部分,这里输出.67
- DBMS_OUTPUT.put_line(TO_CHAR(0.67,'B9.99'));
- --去处首尾的空格和0
- DBMS_OUTPUT.put_line(TO_CHAR(' 0012.5600','FM9999.99'));
- --返回本地的货币符号
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'L99,999.99'));
- --结合‘FM’和‘L’一起使用
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'FML99,999.99'));
- --返回该数乘以10的N次方的结果。N为V后面9个个数。这里返回12345.67*100 (10的平方)
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'99999V99'));
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'99999D99'));
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'C99,999.99'));
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'99999.99EEEE'));
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'99999G99'));
- DBMS_OUTPUT.put_line(TO_CHAR(-12345.67,'99,999.99MI'));
- DBMS_OUTPUT.put_line(TO_CHAR(-12345.67,'99,999.99PR'));
- DBMS_OUTPUT.put_line(TO_CHAR(-12345.67,'S99999'));
- DBMS_OUTPUT.put_line(TO_CHAR(12345.67,'S99999'));
- DBMS_OUTPUT.put_line(TO_CHAR(-12345.67,'99999S'));
- DBMS_OUTPUT.put_line(TO_CHAR(12345.67,'99999S'));
- DBMS_OUTPUT.put_line(TO_CHAR(2007,'RN'));
- DBMS_OUTPUT.put_line(TO_CHAR(2007,'rn'));
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'TM'));
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'U99,999.99'));
- DBMS_OUTPUT.put_line(TO_CHAR(V_INTA,'XXXX'));
- END;
2、TO_NUMBER(x[,formate])函数将一个字符串转换成一个数字。formate参数可以是以上例子中的formate字符串。而且TO_NUMBER和TO_CHAR的过程正好相反。
sql 代码
- DECLARE
- V_VARCH VARCHAR2(50) :='$12345.67';
- BEGIN
- --输出12345.67
- DBMS_OUTPUT.put_line(TO_NUMBER(V_VARCH,'$99999.99'));
- END;