在Oracle资料中,怎么将VARCHAR2转化为NUMBER?

如题所述

第1个回答  2022-11-14
在Oracle资料中,怎么将VARCHAR2转化为NUMBER?
修改表字段数值型别:eg:create table haha_info(remark varchar2(10));-->alter table haha_info modify remark number(2,2);

把字元型转换成数值型:select to_number(t.remark) from haha_info t;

希望可以帮到你~~~

SQL语句VARCHAR2型别转化为NUMBER型别,该怎么解决
SELECT TO_NUMBER('1254875') FROM DUAL;
不过varchar值中必须全是数字的
怎么把mysql资料转化为oracle
1.修改资料库连线字串:
如:
驱动器.mysql.jdbc.Driver 改为 oracle.jdbc.driver.OracleDriver
连线字串jdbc:mysql:localhost:3306/xxx 改为 jdbc:oracle:thin:@localhost:1521:sid
2.调整SQL语句:
如:
分页查询SELECT * FROM TABLE_NAME LIMIT 1, 20 改为 SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 20) WHERE RN >= 1
3.将mysql库中的资料汇入到oracle库:
可以手工进行,如将mysql中的资料转储为sql文,作下调整,在oracle中执行;
建议使用相关工具,如Oracle SQL Developer。
4.将连线资料库的jar包换成oracle的。
Oracle怎样把varchar2型转成number型
oracle中纯数字的varchar2型别和number型别自动转换:
比如:
两个表的栏位定义了不同的型别。一个栏位是varchar2型别,另一个栏位是number型别,内容如下:'00187'和187。在使用中发现会自动将varchar2型别转换为number,即187和187。
测试的sql:
select
case when '0110' = 110 then
'true'
else
'false'
end
from dual;
------------
select
case when to_number('0110') = to_number(110) then
'true'
else
'false'
end
from dual;
结论:结果都是true。为了保险起见还是用to_number()进行转换更好一些。

1、Converts a string to the NUMBER data type(将字串转换为数字资料型别)
TO_NUMBER(<value>[, <format>, <NLS parameter>]) RETURN NUMBER
select to_number('00001228') from dual;
2、Converts a HEX number to FLOAT(转换一个十六进位制数的浮标)
TO_NUMBER(<value>, <format>);
SELECT TO_NUMBER('0A', 'XX') FROM dual;
3、Converts a HEX number to DECIMAL(一个十六进位制数转换为十进位制)
TO_NUMBER(<binary_float | binary_double | number>,
'<hex mask>') RETURN <binary_float | binary_double | number>;
SELECT TO_NUMBER(100000,'XXXXXXXX') FROM dual;

收下varchar2中存的必须要是数字,否则转换会失败

直接用to_number即可


select to_number('100') from dual;
相似回答
大家正在搜