declare
  i number(8);
  s1 varchar2(100);
  s2 varchar2(100);
  aa varchar2(100):='222A333';
begin
  i:=instrb(aa,'A');
  s1:=substrb(aa,1,i-1);
  s2:=substrb(aa,i+1);
end;
/

解决方案 »

  1.   

    用不着触发器。
    在sqlplus中试一下:
    select substr('222A333',4,4),substr('222A333',1,3),substr('222A333',5) from dual;
      

  2.   

    估计字符串不是定长的。select substr(aa,1,instr(aa,'A')-1),substr(aa,instr(aa,'A')+1) from dual;
      

  3.   

    SQL> set serveroutput on
    SQL> declare
      2  aa varchar2(20):='222A333';
      3  begin
      4  dbms_output.put_line(substr(aa,1,instr(aa,'A')-1));
      5  dbms_output.put_line(substr(aa,instr(aa,'A')+1));
      6  end;
      7  /
    222
    333PL/SQL procedure successfully completed