我想检查一个变量值,该变量值应以字母开头,并且应仅包含A-Z 0-9和_下划线,且不包含任何空格(Oracle PLSQL)。
BEGIN
IF regexp_like('Name#123','^([0-9]|_)') THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
BEGIN
IF regexp_like('Name#123','^([0-9]|_)') THEN
dbms_output.put_line('TRUE');
ELSE
dbms_output.put_line('FALSE');
END IF;
END;
答案 0 :(得分:1)
IF REGEXP_LIKE(v_str, '[^A-Za-z0-9_]') THEN
dbms_output.put_line('has special characters');
ELSIF REGEXP_INSTR(v_str, '[A-Za-z]') <> 1 THEN
dbms_output.put_line('does not start with character - A-Z or a-z');
ELSE
dbms_output.put_line('valid columnn name');
END IF;
答案 1 :(得分:0)
REGEXP_LIKE (..., '^[[:alpha:]]\w*$')
或REGEXP_LIKE (..., '^[A-Za-z][A-Za-z0-9_]*$')
应该起作用。 (这取决于您是否允许除A-Z之外的字母。)
答案 2 :(得分:0)
[[:alpha:]]
或
\w
将接受小写字母和任何超出ASCII范围的重音字母。如果您只希望ASCII范围内的26个大写字母,请使用:
where regexp_like(str, '^[A-Z][A-Z0-9_]*$')