确定字段是否为Oracle中的数字字段

确定字段是否为Oracle中的数字字段
在我们平时的发展中可能遇到这样的问题,就是判断一列是完全由数字组成的,大家都知道oracle并没有给我们一个现成的功能,然后根据我的经验总结了两种有效的方法(列名:列表名:表):

1。使用修剪+翻译功能:

复制代码代码如下:SELECT * FROM表装饰(翻译(柱、'0123456789 ','))是无效的;

我们应当注意的是这里的第三参数转换函数是一个空间,不是的,因为如果它是空的翻译的第三个参数是空的,所以它不会使它不能达到过滤的纯数字的目的回归。在这种方式中,所有的数字转换为空间,如果所有的人都是由数字,一旦调整自然是空的,是实现上述目标。当然,如果你想排除空项,你可以这样写:

复制代码代码如下:SELECT * FROM表装饰(翻译(NVL(柱、'X'),'0123456789 ','))是无效的;

2。使用regexp_like功能:

复制代码代码如下:SELECT * FROM表,regexp_like(柱,^ { } { } + 0-9 0-9 $);

值得注意的regexp_like功能不使用在所有的Oracle versions.regexp_like重要的是Oracle的四功能,支持正则表达式:regexp_like,regexp_replace,regexp_instr和regexp_substr。欲了解更多详情,请注意相关文件。

综上所述,如果Oracle支持regexp_like功能,建议使用正规的方式,如果不支持,在修剪+翻译。

tag:字段数字电脑软件Oracle

相关内容