PL / SQL - 我想测试一个字符串是否包含一个或多个小写字母

时间:2013-12-11 22:52:07

标签: oracle plsql

使用PL / SQL(Oracle 11gR2)我想要一个IF语句来测试一个字符串是否包含一个或多个小写字母。

PL / SQL 伪代码

declare
v_string varchar2(100) := 'John';

begin
if v_string contain lower-case letter then
  ... do this
else
  ... do something else
end if;
end;

/

4 个答案:

答案 0 :(得分:1)

测试是否:

v_string != upper(string)

与否。

寻找空值。

coalesce(v_string,'X') != coalesce(upper(string),'X')

答案 1 :(得分:1)

回答了我自己的问题,但不小心把它放在'评论'中。这是:

declare
   name varchar2(200) := 'John';
begin
 if regexp_like(name,'[:lower:]') then
   dbms_output.put_line('lowercase');
 else
    dbms_output.put_line('uppercase');
 end if;
end;

/

答案 2 :(得分:0)

declare
   v_name varchar2(200) := 'JOHn';
begin
 if regexp_like(v_name,'[:lower:]') then
   dbms_output.put_line('first test lowercase');
 else
    dbms_output.put_line('first test uppercase');
 end if;

 IF v_name != UPPER(v_name) THEN
  dbms_output.put_line('second test lowercase');


 ELSE
 dbms_output.put_line('second test uppercase');
 END IF;
end;

测试它...... 输出

首先测试大写

第二次测试小写

David Aldridge是对的......

答案 3 :(得分:0)

if(v_string != upper(string) AND regexp_count(string,'[[:alpha:]]' > 0 )
then
   -- Has Lower case
end if

它还会检查字符串是否包含任何字母!