如何使用sql上的双表确定变量是否具有特殊字符?

时间:2016-01-14 14:23:16

标签: sql oracle

我目前正在尝试检查字符串是否有特殊字符(值不是0到9 A到Z a到z),但我目前使用的内部语言非常有限的功能(可能但需要很多行)。但我能够对sql进行查询。现在我想问一下是否可以在sql上使用双表进行查询,我的计划是将字符串传递给变量,这个变量将在我的sql命令中使用。提前谢谢。

2 个答案:

答案 0 :(得分:2)

以下是您可以使用的内容

SELECT REGEXP_INSTR('Test!ing','[^[:alnum:]]') FROM dual;

只要你的字符串中没有字母或数字,就会返回0以外的数字。

答案 1 :(得分:2)

您可以使用TRANSLATE从字符串中删除所有正常字符。你得到一个只包含不需要的字符的字符串 - 如果没有,则返回一个空字符串。

select translate(
  'AbcDefg1234%99.26éXYZ', -- your string
  '.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
  '.') from dual;

返回:%.é