这一阵子在做oracle数据库相关的数据处理,碰到了一些问题,现记录和总结一下:
问题一:oracle数据库在win10 系统上怎么都打不上,总是提示创建和配置数据库实例失败.Hyper
解决方法:基本试遍了网上的给出的解决方法,还是不能解决问题。最后为了不重装系统,选择使用win10自带的虚拟机Hyper,在虚拟机里安装成功了。感觉win10一直安装不成功是因为之前安装过客户端,卸载的不干净导致新的数据库一直无法安装成功。
问题二:日期格式转换,varchar格式 'yyyy-mm-dd hh24:mi:ss' 转换为varchar格式'yyyymmdd'
解决方法:一定要先将varchar格式转换成date型的 'yyyy-mm-dd hh24:mi:ss' 格式,然后再从date型转为varchar型'yyyymmdd' 格式。例如:
alter table 表名 add 列名1 date; ---新增一列date型数据
update 表名 m set m.列名1= to_date(m.列名,'YYYY-MM-DD HH24:MI:SS'); -- 将待修改格式的varchar型数据转换为date型
update 表名 m set m.列名 = to_char(m.列名1,'yyyymmdd') --将date型数据改为varchar型
alter table 表名 drop column 列名1; -- 删除新增的date型列
commit;
问题三:调整数据格式,位数不够在前面补0;
解决方法:使用 'fm00'等 例如:
update 表名 r
set r.列名 = to_char(r.列名, 'fm00')
where length(r.列名) <= 2; -----将小于10的数字前补0
笔记1:
判断是否为空:使用 is null
将表格设置为空值,使用 = null
笔记2:
replace(str1, str2, str3)函数 ,其中str1 为源字符串,str2 为 str1中要替换的字符串,str3 为替换成的字符串。
例如:str1:陕西西安雁塔区;要将str1 变为 "陕西省西安市雁塔区",则可用如下语句:
replace(str1 , '陕西西安' , '陕西省西安市')