oracle中varchar2类型与integer类型的变量进行运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中varchar2类型与integer类型的变量进行运算相关的知识,希望对你有一定的参考价值。

varchar2 类型的 '2012-05'
integer 类型的 1
如何进行 '2012-05'-1这样的运算?

varchar2能参与integer的计算必须使varchar2保存的是数字型的字符,然后通过to_number函数转换进行计算。

1、创建表,录入数据:

create table t
(id int,
sal varchar2(10));

insert into t values (1,\'10\');
insert into t values (2,\'20\');
commit;

2、执行加法运算:

select id,to_number(sal)+10 from t;

3、查询结果:

参考技术A 不知道你是不是要在 2012-05 的基出上向前移动 1 个月份,如果是的话可以这样写: select to_char(add_months(to_date('2012-05','yyyy-mm'),-1),'yyyy-mm') from dual 就可以得到'2012-04'本回答被提问者和网友采纳 参考技术B declare a varchar2(20);b number;
begin
a:='2012-05';
b:=1;
dbms_output.put_line(to_char(to_date(a||'-'||b,'yyyy-mm-dd'),'yyyy-mm-dd'));
end;

留意oracle中integer和number的区别

INTEGER是整型,数字类型是-1,0,1等 NUMBER是数字型,可以设置小数位如num(6,2),即整数位长度为6,小数位长度为2 如果在建库时varchar型的长度太大,没什么影响,别超过最长字符长度就可以 参考技术A number 既可以存浮点,也可以存整数:number(p,s) p默认38位,s指的是小数位数;
integer 是number的子类,属于38位精度整数;本回答被提问者和网友采纳

以上是关于oracle中varchar2类型与integer类型的变量进行运算的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据类型,函数与存储过程

Oracle系列:三大类型转换

PLS-00307子程序仅在类型参数方面有所不同(RAW与VARCHAR2)

如何比较Oracle中的复杂集合?

新手小白,在oracle中varchar2类型,能设置最大值吗

oracle中两个varchar2类型的时间怎么进行比较