我在DTS包中需要同步两台(A、B)服务器上的数据,A是源服务器,B是目的服务器,两台服务器上的数据库表结构完全一致;其中的Article表有一个nText字段,在导数据的过程中要将这个字段中的少部分内容进行替换(将URL地址替换成本服务器的URL)。
如下面的脚本,但每次执行都出错。//**********************************************************************
//  Java 转换脚本
//************************************************************************//  将各源列复制到目的列
function Main()
{
var re = /172.1.1.4\/Web/;
var ss = DTSSource("txtArticleContent");
DTSDestination("txtArticleContent") = ss.replace(re,'202.98.0.1');
return(DTSTransformStat_OK);
}

解决方案 »

  1.   

    啊喔~~~偶平常用VBscript...幫不上忙了
      DTSDestination("txtArticleContent") = Replace(DTSSource("txtArticleContent"),'172.1.1.4','202.98.0.1');
      

  2.   

    nText字段,
    先轉換下類型....
      

  3.   

    怎么转换?他出来之后就是String型了!能说得具体些不??
      

  4.   

    DTSDestination("txtArticleContent") = Replace(DTSSource("txtArticleContent"),'172.1.1.4','202.98.0.1');换成VBScript,这个也是错的!:(
      

  5.   

    因為replace好像不能對ntext類型直接操作,
    比如SQL中
    declare @t table(c ntext)
    insert into @t select 'xxx127.1.1.14'--直接replace
    select replace(c,'127.1.1.14','225.225.225.0') from @t  ----報錯!!--需要轉換類型:
    select replace(convert(varchar(100),c),'127.1.1.14','225.225.225.0') from @t
    /*結果: xxx225.225.225.0*/你可以考慮在DTS的source中先將其轉換類型後再導入到destination中,
    或者你試下看看Replace(CStr(DTSSource("txtArticleContent")),'172.1.1.4','202.98.0.1'),這個不知道能不能行?
      

  6.   

    --噫...剛剛我試了一下,好像可以導,
    --把單引號改成雙引號...
    DTSDestination("txtArticleContent") = Replace(DTSSource("txtArticleContent"),"172.1.1.4","202.98.0.1")
      

  7.   

    你的是对的,呵呵!主要是我对VBScript不熟!
      

  8.   

    1.需要key來判斷,在source里下SQL涮選條件:
     select * from source_table a(nolock)
     where not exists (select 1 from destination_table b(nolock) where a.key=b.key)2.或者在source_table加個flag欄位:--如果別的地方用到此表需要注意多了個欄位
       alter table source_table add  flag int not null default 0 
      在source里下SQL條件:
        select *  from source_table (nolock) where flag=0
      每次轉換資料成功後加一個Execute SQL Task,執行語句:
       update source_table set flag=1
      

  9.   

    嗯,这样应该行,但这个DTS怎样实现“导入成功后执行一个SQL”呢?
      

  10.   

    能加我的MSN吗?cm180#163.com  换“#”为“@”谢谢!
      

  11.   

    不好意思,不能上MSN
    你在設計DTS的時候,不是有很多Task可以拖過來用的麼,在"資料轉換"後面拖一個
    "SQL Execute TASK"或者"ActiveX Script"都是可以的.前者支持SQL語句,可能效率高點,
    後者支持VBscript,JSscript等等