カスタムoracle function関数の応用.!!


最近、アルファベットの位置を調べるデータを作っています.以下は私のやり方です.皆さんと分かち合います.もっといい方法があれば、皆さんも分かち合ってほしいです.もっと交流してもっと勉强します..
--  1 
--           
create or replace function isNumber(p_in varchar2) return varchar2 as
  i number;
begin
 --   E  ,         E          ,    FALSE
  if(instr(p_in,'E') = 0) then
      i := to_number(p_in);
      return 'TRUE';
  else 
       return 'FALSE';
  end if;
exception
  when others then
    return 'FALSE';
end;
--  2
--           
create or replace function findCharToPostion(p_in varchar2, p_positon number)
 return  varchar2 as
  c char(1);
  i number;
begin
  select substr(p_in,p_positon,1) into c from dual;
  i := to_number(c);
  return 'FALSE';
  exception 
     when others then
      return 'TRUE';
end findCharToPostion;

使用方法:
--  [Column]           
select * from TABLE where findCharToPostion(Column,3) = 'TRUE';
--  [Column]           
select * from TABLE where findCharToPostion(Column,4) = 'TRUE';

ただの簡単な例ですが、私が言いたいのは、時には関数も多くの頭の痛い問題を解決してくれることがあります...!!
皆さんにヒントを与えてほしいです.