oracle自定义的函数

今天在数据库里做数据运算时(数据都为0以上),发现报无效数字,之前也是经常遇到这种错误,一直没有做过整理;

解决办法:

1.查出非数据的字段,但是没查到

SELECT * from 表 WHERE replace(表字段,'0123456789.','') IS NULL;

2.将空格清除掉(换行,制表符,空格)

update 表 set 表字段 = regexp_replace(表字段,'\S','');

再对空字段做转换,问题已经解决

select decode(nvl(字段,0),0,0,字段/10) from dual

 

ps:

另外写了个函数,方便以后查看空格具体是什么字符

--sql查看
SELECT REPLACE(
REPLACE(
REPLACE(
REPLACE (' 这 个 是数据字段',chr(9),'制表符'),
CHR(10),'换行符'),
CHR(13),'回车'),
CHR(32),'空格') from dual;
create or replace function viewchr(str in VARCHAR2) return varchar2 IS
--显示表里的空格
Result varchar2(400);
BEGIN
SELECT 
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE (str,chr(9),'制表符'),
    CHR(10),'换行符'),
    CHR(13),'回车'),
    CHR(32),'空格') INTO Result 
from soldier_a;
return(Result);
end viewchr;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值