我已经建立了两个dblink,如一个是@ab,一个是@cd,我想在存储过程中用一个通用的方式来引用这两个dblink,可以这样么:
ln varchar2;
ln='ab'
update table_1@ln可以这样来表示的么???急,请大侠们帮忙~~

解决方案 »

  1.   

    动态语句execute immediate 'update table'||@ln||'set fld='||'1';
      

  2.   

    ln:='ab';
    sqlstr := 'update table@'||ln||' set 子句'
    execute immediate sqlstr;
      

  3.   

    ln varchar2(20); 
    t_sql varchar2(200); 
    ln:='ab';
    t_sql:='update table_1@'||ln; 
    execute immdiate t_sql
      

  4.   


    我原来在存储过程这样写的:
    update table_1@ln a
    set a.xm='kk';
    commit;那要改为这样了:
    ln:='ab'; 
    sqlstr := 'update table@'||ln||' set a.xm='kk'' 
    execute immediate sqlstr;还需要commit语句么?
      

  5.   


    excute就是在做更新提交操作,不需要再加commit语句了。
      

  6.   

    excute就是在做更新提交操作,不需要再加commit语句了。不好意思,引用错了。