在oracle和sql中有两个同样的表A,B。本来取数据都是用oracle中的这两个表的(有一些连表查询的sql)!现在要求只能用sql中的A,B表。请问要怎么办?

解决方案 »

  1.   

    oracle中有个叫datalink的东西,建一个就可以跨库对几个表查询,很容易的,试一试吧。
      

  2.   

    楼主好像不需要跨库查询啊,只需要查sql的库表啊
      

  3.   


    自己在Plsql里面试一试吧。
      

  4.   

    搞不懂你的问题
    再加一个查询sqlserver数据库数据的方法不就可以了,又不影响查询oracle,随便你自己怎么处理。
      

  5.   

    你可能没明白我的意思。select id,r.m_id,start_time,end_time,NAME,--r,m.B as ctr
    from 
    (
        select m_id,  pub_paid,c
        from A--(原来在ORACLE里现在要换成sqlserver2008)
        where mid in (1000,1001,1002)
        and rownum<=10 and flag=1
        group by m_id
    ) r
    left join m on r.m_id=m.id
    and m.status>0
    order by m_id; 
    SQL大概是这样的,A表现在要用sql中的A表来取数据。
      

  6.   

    我打算用两个dataset或者datatable处理之后再合并成一个,思路是这样的不知道可行不?
      

  7.   


    完全可以,就用datatable吧,里面left join,筛选什么的都有。
      

  8.   


    完全可以,就用datatable吧,里面left join,筛选什么的都有。嗯,像上面的sql用datatable怎么处理呀?
      

  9.   

    refer: http://www.cnblogs.com/chenxizhang/archive/2009/04/29/1445994.html
    http://blog.csdn.net/ericyeung/article/details/2659633
      

  10.   

    select *from A--(原来在ORACLE里现在要换成sqlserver2008)
    left join M--Oracle中的
    on A.ID=M.id应该怎么分成两个datatable来处理?
      

  11.   

     可以具体说说么不是跨库吧,如果在在同一库中处理,union可以把2个结构相同的表合并为一个数据集
      

  12.   

     可以具体说说么不是跨库吧,如果在在同一库中处理,union可以把2个结构相同的表合并为一个数据集哥们不跨,我就不来这求助了。。
      

  13.   

    select *from A--(原来在ORACLE里现在要换成sqlserver2008)
    left join M--Oracle中的
    on A.ID=M.id应该怎么分成两个datatable来处理?
      

  14.   

    我觉得正确的思路是用dataset和datatable,但是具体实现不知道?Linkserver思路不对的
      

  15.   

    请问我有个dataset里面的第一列数据我要把它转换成行应该怎么弄?
    123
    1234
    12345
    1234567转换成'123','1234','12345','1234567'的一个string。
      

  16.   

    string res = string.Join(dataset.Tables[0].Select().Select(r => r[0] + "").ToArray())
    不知道你是不是要这个结果?还是把int转成string?
      

  17.   

    上面代码少写了一个参数,不好意思~
    string res = string.Join("",new System.Data.DataTable().Select().Select(r => r.Field<string>("列名")).ToArray())

      

  18.   


    在C#使用DataSet操作两个数据源的表数据 再使用LINQ来操作DataSet,这样也是行的通的。但是同样的功能LINKSERVER也可以实现,SQL实现更方便。只要建立了oledb,OPENDATASOURCE,OPENROWSET什么的都比C#实现起来方便和高效吧。
      

  19.   


    下午没事做。。//建立DataTable 1(模拟从SQLServer取出的数据)
    DataTable dt1 = new DataTable();dt1.Columns.Add(new System.Data.DataColumn("ID",typeof(string)));//建立DataTable 2(模拟从Oracle取出的数据)
    DataTable dt2 = new DataTable();dt2.Columns.Add(new System.Data.DataColumn("ID",typeof(string)));//给Table1加入初始数据(0 - 4)
    Enumerable.Range(0,5).Select(num => { var row = dt1.NewRow();

    row[0] = num.ToString(); return row;

    }).ToList().ForEach(element => dt1.Rows.Add(element));//给Table2加入初始数据(1000 - 1004)
    Enumerable.Range(1000,5).Select(num => { var row = dt2.NewRow();

    row[0] = num.ToString(); return row;

    }).ToList().ForEach(element => dt2.Rows.Add(element));//合并
    var res =  (from e1 in dt1.Select() select e1.Field<string>("ID")).Union

    (from e2 in dt2.Select() select e2.Field<string>("ID"));
    //显示出数据   在VS中使用foreach显示res.Dump("Show Data");string.Join("",res).Dump("Cols -> Row");string.Join(",",res).Dump("Cols -> Row");结果如下:
    这是我们公司用的LINKSERVER链接Oracle和MSSQL的表关联的SQL
    SELECT * FROM OPENQUERY(jde,'SELECT * FROM proddta.F4311 WHERE PDDOCO = 13000001') F4311LEFT JOIN dbo.JDEConfirmTable ON PDDOCO = OrderNo AND PDDCTO = PURStyle AND PDMCU = Company
      

  20.   

    我用list做的最后,分数给你了~~
      

  21.   

    toad10自动优化sql语句一般用什么?怎么优化呀?