在oracle varchar列值中给定符号后计算字符数

时间:2012-06-11 20:19:55

标签: oracle string-length

如何计算某个角色后的角色数量。我是甲骨文的新手,而且我已经学到了很多东西,但是我在这一点上很难过。我找到了几个函数,它们会给你一个子字符串,我找到了一个函数,它将给你一个字符串的长度。我正在查看电子邮件地址myemail@thedomain.com。我想检查'。'之后的长度。在电子邮件中。

SELECT email
FROM user_table
WHERE length(substr(email, /*what values*/, /*to put here*/))

我不知道是否真的可以找到最终''的位置。在电子邮件字符串中?

2 个答案:

答案 0 :(得分:3)

我不确定我会使用substr。你可以尝试这样的事情:

select length('abcd@efgh.123.4567') - instr('abcd@efgh.123.4567', '.', -1) from dual

使用instr(..,..,-1)从最后一个字符向后搜索以查找位置。

答案 1 :(得分:2)

由于您正在进行检查,我建议您使用REGEXP_INSTR使用正则表达式验证格式。例如,我在此网站上找到的电子邮件验证是REGEXP_INSTR(email, '\w+@\w+(\.\w+)+') > 0

我自己没有检查,但看起来很不错。

干杯。