用存储过程吧
取出field2的内容然后解码
再拼出sql语句
执行就可以了,
关键是解码

解决方案 »

  1.   

    select t1.field2, t2.mc from t1, t2 where substr(t1.field2,1,2) = 't2' and substr(t1.field2,4,1) = t2.id
    union
    select t1.field2, t3.mc from t1, t3 where substr(t1.field2,1,2) = 't3' and substr(t1.field2,4,1) = t3.id
    union
    select t1.field2, t4.mc from t1, t4 where substr(t1.field2,1,2) = 't4' and substr(t1.field2,4,1) = t4.id;
      

  2.   

    declare
    type n_sor is ref cursor;
    m_sor n_sor;
    v_field1 t1.field1%type;
    v_mc     t2.mc%type;
    cursor t_sor is
    select substr(feild2,1,instr(feild2,';')-1) table_name,substr(feild2,instr(feild2,';')+1,1) id from t1;
    str varchar2(30);
    begin
    for v_sor in t_sor loop
    v_table:=v_sor.feild2;
    str:='select a.field1,b.mc from t1 a,'||v_sor.table_name||' b where a.'||v_sor.id||'='||v_sor.table_name||'.id';
    open m_sor for str;
    fetch m_sor into v_field1,v_mc;
    loop
    exit when m_sor%notfound;
    dbms_output.put_line(v_field1,v_mc);
    end loop;
    close m_sor;
    end loop;
    /