求字符串检索的SQL,该如何解决

求字符串检索的SQL
有一个varchar2(500)的字段存放字符串,我想要查找
1. 除了"#", ",", ";" 这三个符号之外还含有其他符号的记录
2. 只含有"#", ",", ";" 这三个符号的记录

请问这两条SQL分别应该怎么写,要考虑效率问题

------解决方案--------------------
用正则
1. 除了"#", ",", ";" 这三个符号之外还含有其他符号的记录
select *
from a
where regexp_like(col,'[^#,;]+')
;

2. 只含有"#", ",", ";" 这三个符号的记录
select *
from a
where regexp_like(col,'^[#,;]*$')
;