- 浏览: 341706 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (198)
- HIBERNATE (8)
- JAVA (13)
- 数据库 (24)
- SPRING (1)
- LINUX (0)
- 需求管理 (3)
- 职业提升 (6)
- 团队建设 (1)
- 日常用到语句 (1)
- FLEX (6)
- 用户体验 (3)
- 设计模式 (6)
- weblogic (2)
- PowerDesigner (3)
- HTML (7)
- ANT (7)
- 工具. (1)
- bat (5)
- 存储过程 (1)
- strus2 (1)
- DWR (2)
- jfreechart (4)
- 上线测试优化 (17)
- JVM (9)
- 工具使用 (2)
- 算法 (3)
- 私事 (0)
- 数据库-Oracle session (1)
- 软件开发 (5)
- 产品 (2)
- 项目管理 (4)
- oracle语句 (1)
- IntelliJ IDEA (4)
- GRAILS (10)
- Groovy (1)
- JS (1)
- DUBBO (1)
- JAVA EXCEL (3)
- netty websocket (1)
- kafka (1)
- 秘钥体系 (2)
- golang (6)
- gradle (1)
- spring cloud (0)
最新评论
-
wujt:
...
Grails_数据库逆向工程插件 db-reverse-engineer -
yy8093:
我也遇到这个问题,不过并不觉得是个好的方法。。。。不过最后也确 ...
关于dubbo服务产生异常之:Caused by: com.alibaba.dubbo.remoting.TimeoutException: Waiting s -
wujt:
# ----- Execute The Requested C ...
jconsole基础配置(原创) -
gaowei52306:
你好,请问remotedir="/home/dmwe ...
Ant FTP -
抢街饭:
ant生成日志 在命令行也能看见 怎么去做啊
ant生成日志
本文介绍了判断字符串是否全为数字的4种办法,另外还介绍了一个translate函数的小技巧,从任意字符串中提取数字(调用2次translate函数)。这个办法是一个公司同事发现的,用起来很方便,但理解起来稍有点困难。
1、通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')
2、调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常
3、调用translate函数,剔除所有[0-9]数字后,看是否为空串
4、调用正则表达式,进行模式匹配(10g版本新加入的功能)
[SQL] view plaincopy
01.--通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')
02.DECLARE
03. str VARCHAR2(10) := '123a';
04. val NUMERIC(10);
05. i int;
06. k int;
07. flag BOOLEAN;
08.BEGIN
09. flag := TRUE;
10. for i in 1..10 loop --新密码是否6位数字
11. k := ascii(substr(str, i, 1));
12. if k < 48 or k > 57 THEN
13. flag := FALSE;
14. end if;
15. end LOOP;
16.
17. IF flag = true THEN
18. dbms_output.put_line(str || '是[0-9]的数字序列');
19. ELSE
20. dbms_output.put_line(str || '不是[0-9]的数字序列');
21. END IF;
22.END;
23.
24.-- 调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常
25.DECLARE
26. str VARCHAR2(10) := '123';
27. val NUMERIC(10);
28.BEGIN
29. val := CAST(str AS NUMERIC);
30. dbms_output.put_line(str || '是[0-9]的数字序列');
31.EXCEPTION
32. WHEN value_error THEN -- 字符串转实数错误
33. --dbms_output.put_line(SQLCODE || ', ' || SQLERRM);
34. dbms_output.put_line(str || '不是[0-9]的数字序列');
35.END;
36.
37.--调用translate函数,剔除所有[0-9]数字后,看是否为空串
38.DECLARE
39. str VARCHAR2(10) := '123abc';
40.BEGIN
41. IF replace(translate(str, '0123456789', '0'), '0', '') IS NULL THEN
42. dbms_output.put_line(str || '是[0-9]的数字序列');
43. ELSE
44. dbms_output.put_line(str || '不是[0-9]的数字序列');
45. END IF;
46.END;
47.
48.--调用正则表达式,进行模式匹配(10g版本新加入的功能)
49.SELECT *
50.FROM dual
51.WHERE regexp_like('1234', '^[[:digit:]]+$');
52.
53.--从任意字符串中提取数字串(调用2次translate函数)。
54.--假定初始串为str。首先将str中数字全部替换为空格,输出记为str2;
55.--其次,对每个在str中出现的任意str2串中字符,如果是str2的首字符则替换为空格,其它字符则全部剔除
56.DECLARE
57. --str VARCHAR2(100) := ' 护照01浙江2 3昆 山4苏 3';
58. str VARCHAR2(100) := ' 护照浙江 昆 山苏 4';
59. ret VARCHAR2(10);
60.BEGIN
61. ret := TRIM(TRANSLATE(str, trim(TRANSLATE(str, '1234567890', ' ')), ' '));
62. dbms_output.put_line(ret);
63.END;
1、通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')
2、调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常
3、调用translate函数,剔除所有[0-9]数字后,看是否为空串
4、调用正则表达式,进行模式匹配(10g版本新加入的功能)
[SQL] view plaincopy
01.--通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = '57')
02.DECLARE
03. str VARCHAR2(10) := '123a';
04. val NUMERIC(10);
05. i int;
06. k int;
07. flag BOOLEAN;
08.BEGIN
09. flag := TRUE;
10. for i in 1..10 loop --新密码是否6位数字
11. k := ascii(substr(str, i, 1));
12. if k < 48 or k > 57 THEN
13. flag := FALSE;
14. end if;
15. end LOOP;
16.
17. IF flag = true THEN
18. dbms_output.put_line(str || '是[0-9]的数字序列');
19. ELSE
20. dbms_output.put_line(str || '不是[0-9]的数字序列');
21. END IF;
22.END;
23.
24.-- 调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常
25.DECLARE
26. str VARCHAR2(10) := '123';
27. val NUMERIC(10);
28.BEGIN
29. val := CAST(str AS NUMERIC);
30. dbms_output.put_line(str || '是[0-9]的数字序列');
31.EXCEPTION
32. WHEN value_error THEN -- 字符串转实数错误
33. --dbms_output.put_line(SQLCODE || ', ' || SQLERRM);
34. dbms_output.put_line(str || '不是[0-9]的数字序列');
35.END;
36.
37.--调用translate函数,剔除所有[0-9]数字后,看是否为空串
38.DECLARE
39. str VARCHAR2(10) := '123abc';
40.BEGIN
41. IF replace(translate(str, '0123456789', '0'), '0', '') IS NULL THEN
42. dbms_output.put_line(str || '是[0-9]的数字序列');
43. ELSE
44. dbms_output.put_line(str || '不是[0-9]的数字序列');
45. END IF;
46.END;
47.
48.--调用正则表达式,进行模式匹配(10g版本新加入的功能)
49.SELECT *
50.FROM dual
51.WHERE regexp_like('1234', '^[[:digit:]]+$');
52.
53.--从任意字符串中提取数字串(调用2次translate函数)。
54.--假定初始串为str。首先将str中数字全部替换为空格,输出记为str2;
55.--其次,对每个在str中出现的任意str2串中字符,如果是str2的首字符则替换为空格,其它字符则全部剔除
56.DECLARE
57. --str VARCHAR2(100) := ' 护照01浙江2 3昆 山4苏 3';
58. str VARCHAR2(100) := ' 护照浙江 昆 山苏 4';
59. ret VARCHAR2(10);
60.BEGIN
61. ret := TRIM(TRANSLATE(str, trim(TRANSLATE(str, '1234567890', ' ')), ' '));
62. dbms_output.put_line(ret);
63.END;
发表评论
-
在oracle10g中如何恢复drop掉的表
2014-11-19 15:17 801在oracle10g中如何恢复drop掉的表 在oracl ... -
左关联右关联全关联
2014-11-10 17:06 3887左关联右关联全关联 参考:http://www.cn ... -
win8系统倒入数据imp-00058错误
2014-09-21 17:52 699win8系统倒入数据imp-00058错误 ... -
查询闪存
2013-12-17 09:36 796(1)查询目标表30分钟前的数据 select * from ... -
ORA-00031: session marked for kill 处理Oracle中杀不掉的锁
2013-08-16 13:35 726ORA-00031: session marked for k ... -
Oracle创建表空间、创建用户以及授权
2013-07-30 11:30 719Oracle创建表空间、创建用户以及授权 创建临时表空间 创 ... -
Oracle中诊断阻塞session的方法 blocking error
2014-10-22 11:36 716Oracle中诊断阻塞session的方法 blocking ... -
查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL
2013-01-19 13:58 0查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL 数 ... -
查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL
2013-01-19 13:57 2650查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL 数 ... -
ORACLE阻塞
2013-01-19 13:56 921ORACLE阻塞 案例一: 34.//SYS窗口 35. ... -
数据库阻塞和死锁的区别(转载)
2013-01-19 13:30 1382数据库阻塞和死锁的区别(转载) 数据库阻塞和死锁在程序开发过程 ... -
oracle 死锁和锁等待的区别(转载)
2013-01-19 13:27 1326oracle 死锁和锁等待的区别(转载) 所谓的锁等待:就是 ... -
关于“ORA-00060:等待资源时检测到死锁”问题的分析(转载)
2013-01-19 13:26 1355关于“ORA-00060:等待资源时检测到死锁”问题的分析(转 ... -
查询Oracle正在执行和执行过的SQL语句
2013-01-18 22:55 0查询Oracle正在执行和执行过的SQL语句 ---正在执 ... -
如何检测被锁住的Oracle存储过程(转帖)
2013-01-18 17:39 871如何检测被锁住的Oracle存储过程(转帖) 1.查看是哪 ... -
Oracle死锁的处理
2013-01-18 17:29 742Oracle死锁的处理 Oracle死锁问题应该如何解决呢?可 ... -
oracle 查询所有表的记录数 SQL
2013-01-18 15:06 1307oracle 查询所有表的记录数 SQL create o ... -
oracle enterprise manager console 出现 ora-12154:TNS:无法处理的服务名
2011-11-27 20:23 1195登录oracle enterprise manager con ... -
启动服务报错ORA-12505
2011-10-25 18:23 1470今天在工作中配置plsqldev时,报错误是找不到服务名 同 ... -
ORACLE-数据库导出(exp)/ 导入(imp)
2011-06-09 09:42 1498exp 将数据库内的各对象以二进制方式下载成dmp 文件, ...
相关推荐
### Oracle 判断字符串是否能转换为数字的方法 在Oracle数据库中,我们经常需要处理各种数据类型之间的转换。尤其是在处理字符型数据时,有时我们需要判断一个字符串是否能够被成功地转换成数字类型。与SQL Server...
本文将详细介绍如何利用Oracle内置函数来实现从含有逗号和冒号的字符串中提取特定部分的功能。 #### 1. 使用REGEXP_SUBSTR函数 `REGEXP_SUBSTR`函数是Oracle提供的一种强大的工具,用于从文本字符串中提取匹配正则...
在Oracle数据库中,将字符串转换为数字是一项常见的操作,特别是在处理包含数字的字符串列时,可能需要进行数值计算或按照数值大小进行排序。本篇文章将深入探讨如何在SQL查询中利用Oracle提供的函数来实现这一目标...
判断字符串是否包含emoji表情
C#连接Oracle数据库字符串 C#连接Oracle数据库字符串
select f_find('Ap@2233ll@@l@@','@') from dual 返回结果为5,代表‘@’在该字符串中出现5次。 同理 select f_find('Ap@223SWEQQQ3ll@@l@@','Q') from dual---返回3,代表Q在字符串中出现了3次, select f_find('我...
`substr()` 用于从字符串中提取指定长度的部分。例如,`substr(string, start_position, length)` 返回从`start_position`开始,长度为`length`的子串。结合`instr()`,可以逐个截取字符串的不同部分。 3. **...
Oracle 连接字符串是指连接 Oracle 数据库的字符串书写方法,本文总结了多种连接 Oracle 数据库的字符串书写方法。 一、标准连接字符串 标准连接字符串是最基本的连接字符串格式,用于连接 Oracle 数据库。例如,...
Oracle Sql 中提供了多种字符串处理函数,用于对字符串进行各种操作,如大小写转换、截取、连接、查找、替换等。下面是 Oracle Sql 中常用的字符串处理函数: 1. 大小写转换函数 Oracle Sql 提供了两个大小写转换...
本文将深入探讨如何使用Oracle遍历数据库查找字符串,以及一个简化此过程的工具。 标题"Oracle遍历数据库查找字符串"暗示了一个实用的解决方案,它允许用户快速搜索Oracle数据库中的特定文本字符串,无需手动编写...
在Oracle数据库中,进行字符串查询时,特别是当字符串中包含逗号等特殊字符时,我们需要巧妙地使用SQL的LIKE操作符来实现精确匹配。这里,我们面对的问题是想要查询DWDH字段中含有"飞信"但不包含"移动飞信"或"飞信...
Oracle还提供了`GET_JSON_OBJECT`和`GET_JSON_ELEMENT`等函数来提取JSON字符串中的特定字段。例如: ```sql SELECT GET_JSON_OBJECT(json_column, '$.name') AS name FROM your_table ``` 这会从`json_column`列中...
Oracle 数据库连接字符串大全教程 Oracle 数据库连接字符串大全教程旨在提供了完整的 Oracle 连接字符串大全,涵盖了异地或服务器数据库连接、ODBC 连接、OLE DB 连接、Oracle.DataAccess.Client.OracleConnection ...
### Oracle中字符串截取知识点详解 #### 一、概述 在Oracle数据库中,对字符串进行截取是一项常用且重要的操作。本文将详细介绍Oracle中的字符串截取功能及其应用场景,包括常用的`INSTR`和`SUBSTR`函数,并通过...
oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果
在实际工作中经常遇到截取两个相同字符串之间的字符的oracle问题,以下是相关语句
传入一个字符串和该字符串的分割字符,返回去重后的字符串,可以直接在plsql中运行,简单的函数运用,能处理oracle中。资源仅供参考
在标题和描述中提到的,我们需要通过SQL语句从存储在数据库字段中的JSON字符串中提取特定属性的值。Oracle提供了多种方法来处理这种需求,其中包括基础的字符串操作函数和正则表达式功能。 首先,Oracle的`substr()...
Oracle数据库提供了多种截取字符串的方法,本文将介绍 substr 和 instr 两个常用函数,以及 case when then else end 语句的使用。 一、substr 函数 substr 函数用于截取字符串的一部分,语法为 `substr(string, ...