我想将ORACLE数据库一个表中的数据插入到MS SQL SERVER中应该如何做!(不通过工具做,而是直接使用SQL语句),谢谢!

解决方案 »

  1.   

    还是得使用SQL Server自带的DTS工具定义一下先。
    然后可以用SQL语句insert进来
    直接裸SQL,恐怕连都连不上。
      

  2.   

    有一个方法试试看不知道行不行,在oracle生成sql server下面用来插入数据的sql语句
    例如:oracle里的表A,有字段a1,a2
    假设sql server里面插入数据的sql语句为insert a(a1,a2) values (&a1,&a2)
    那么我在oracle生成的sql server 下插入数据的sql语句的语句为:
    select "insert a(a1,a2) values ("||a.a1||","||a.a2||");
    commit;" from a
    把上述语句在oracle执行并把结果输出到文本文件而不是屏幕,就可以得到在sql server导入数据的脚本上面具体的语句都没有测试,只是提供一个思路
      

  3.   

    用oracle定义一个DBLink,然后通过容器操作,能不能实现呢?
      

  4.   


    \
    估计不可以 ,要把SQL server数据库里面数据 导到ORACLE 9i 里面 后来采取的办法还是DTS
      

  5.   

    我是想在程序里筛选ORACLE里的记录然后再插入到SQL SERVER中,当然SQL SERVER中的表结构已经定义好!问题是就要连接两次数据,该怎么操作呢?用OPENDATASOURCE可不可以呢?
      

  6.   

    1.建立两个连接;
    2.在SQL Server数据库中建立远程服务连接或在Oracle上创建相同的链接:
    以下来自SQL Server 联机丛书:
    sp_addlinkedsrvlogin
    创建或更新本地 Microsoft® SQL Server™ 实例上的登录与链接服务器上远程登录之间的映射。语法
    sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'
        [ , [ @useself = ] 'useself' ]
        [ , [ @locallogin = ] 'locallogin' ]
        [ , [ @rmtuser = ] 'rmtuser' ]
        [ , [ @rmtpassword = ] 'rmtpassword' ]参数
    [@rmtsrvname =] 'rmtsrvname'是应用登录映射的链接服务器名称。rmtsrvname 的数据类型为 sysname,没有默认设置。[@useself =] 'useself'决定用于连接到远程服务器的登录名称。useself 的数据类型为 varchar(8),默认设置为 TRUE。true 值指定 SQL Server 验证的登录使用其自己的凭据以连接到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。false 值指定 rmtuser 和 rmtpassword 参数用来连接到特定 locallogin 的 rmtsrvname。如果 rmtuser 和 rmtpassword 也设置为 NULL,则连接链接服务器不需使用任何登录或密码。对于 Windows NT 身份验证登录而言,useself 为 true 则无效,除非 Microsoft Windows NT® 环境支持安全帐户委托,并且,提供程序支持 Windows 身份验证(此时不再需要创建值为 true 的映射,不过创建仍然有效)。[ @locallogin =] 'locallogin'本地服务器上的登录。locallogin 的数据类型为 sysname,默认设置为 NULL。NULL 值指定此条目将应用于所有连接到 rmtsrvname 的本地登录。如果值不为 NULL,则 locallogin 可以是一个 SQL Server 登录或 Windows NT 用户。必须授予 Windows NT 用户直接访问 SQL Server 或通过其作为已授予访问权限的组的成员来访问 SQL Server 的权限。[@rmtuser =] 'rmtuser'当 useself 为 false 时,用来连接 rmtsrvname 的用户名,rmtuser 的数据类型为 sysname,默认设置为 NULL。[@rmtpassword =] 'rmtpassword'与 rmtuser 相关的密码。rmtpassword 的数据类型为 sysname,默认设置为 NULL。返回代码值
    0(成功)或 1(失败)注释
    当用户登录到本地服务器并执行分布式查询,以访问链接服务器上的表时,本地服务器必须登录链接服务器上,代表该用户访问该表。使用 sp_addlinkedsrvlogin 来指定本地服务器登录链接服务器的登录凭据。本地服务器上所有登录和链接服务器上的远程登录之间的默认映射通过执行 sp_addlinkedserver 自动创建。默认映射说明连接到链接服务器代表的登录时,SQL Server 使用本地登录的用户凭据(等同于将链接服务器的 @useself 设置为 true 时执行 sp_addlinkedsrvlogin)。使用 sp_addlinkedsrvlogin 只可以更改特定的本地服务器的默认映射或添加新映射。若要删除默认映射或任何其它映射,请使用 sp_droplinkedsrvlogin。当所有下列条件存在时,SQL Server 可以自动地使用正在发出查询的用户的 Windows NT 安全凭据(Windows NT 用户名称和密码),以连接到链接服务器,而不是必须使用 sp_addlinkedsrvlogin 创建一个预设的登录映射。 使用 Windows 身份验证模式,用户连接到 SQL Server。
    在客户端和发送服务器上安全帐户委托是可用的。
    提供程序支持 Windows 身份验证模式(例如,运行于 Windows NT 上的 SQL Server)。 
    使用映射(此映射通过在本地 SQL Server 上执行 sp_addlinkedsrvlogin 定义)的链接服务器执行身份验证后,远程数据库中单独对象的权限由链接服务器决定,而不是由本地服务器决定。不能从用户定义的事务中执行 sp_addlinkedsrvlogin。权限
    只有 sysadmin 和 securityadmin 固定服务器角色的成员才可以执行 sp_addlinkedsrvlogin。示例
    A. 使用各自的用户凭据将所有本地登录连接到链接服务器
    此示例创建一个映射,以确保所有到本地服务器的登录都使用其各自的用户凭据连接到链接服务器 Accounts。EXEC sp_addlinkedsrvlogin 'Accounts'或EXEC sp_addlinkedsrvlogin 'Accounts', 'true'B. 使用指定的用户和密码将所有本地登录连接到链接服务器
    此示例创建一个映射,以确保所有到本地服务器的登录都使用相同的登录 SQLUser 和密码 Password 连接到链接服务器 Accounts。EXEC sp_addlinkedsrvlogin 'Accounts', 'false', NULL, 'SQLUser', 'Password'C. 不使用任何用户凭据将所有本地登录连接到链接服务器
    此示例创建一个映射,以确保所有到本地服务器的登录都连接到链接服务器 mydb,而不使用登录或密码(mydb 不需要登录或密码)。EXEC sp_addlinkedsrvlogin 'mydb', 'false', NULL, NULL, NULL-或-EXEC sp_addlinkedsrvlogin 'mydb', 'false'D. 使用不同的用户凭据将特定的登录连接到链接服务器
    此示例创建一个映射,以确保只有 Windows NT 用户 Domain\Mary 使用登录 MaryP 和密码 NewPassword 连接到链接服务器 Accounts。EXEC sp_addlinkedsrvlogin 'Accounts', 'false', 'Domain\Mary', 'MaryP', 'NewPassword'E. 将特定的登录连接到 Excel 电子表格(链接服务器)
    此示例首先创建一个名为 ExcelSource 的链接服务器,定义为 Microsoft Excel 电子表格 DistExcl.xls,然后创建一个映射以允许 SQL Server 登录 sa 使用 Excel 登录 Admin 连接到 ExcelSource,并且没有密码。EXEC sp_addlinkedserver 'ExcelSource', 'Jet 4.0',
       'Microsoft.Jet.OLEDB.4.0',
       'c:\MyData\DistExcl.xls',
       NULL,
       'Excel 5.0'
    GO
    EXEC sp_addlinkedsrvlogin 'ExcelSource', 'false', 'sa', 'Admin', NULL
    请参见SQL Server联机丛书
      

  7.   

    使用:
    Insert Into sqlTableName Select * From OraSource.OraUserID.OraTableName
      

  8.   

    用sp_addlinkedsrvlogin 就行的