SELECT * INTO [dbo].[T1] FROM OPENDATASOURCE 
('OraOLEDB.Oracle','data source=abc; user id=system;password=sys123')..system.T1错误提示:
OLE DB 提供程序 'OraOLEDB.Oracle' 不包含表 '"system"."T1"'。该表可能不存在,或当前用户没有使用该表的权限。
--可是我用的是SYSTEM用户建T1呀。如果是
SELECT * INTO [dbo].[T1] FROM openrowset
('OraOLEDB.Oracle','data source=abc;uid=system;password=sys123;','select * from system.T1')
错误提示:
OLE DB 提供程序 'OraOLEDB.Oracle' 报错。 
[OLE/DB provider returned message: ORA-01017: ΞЧ�ēû�û/�ځ�ܾ��ǂ�]--不知道是什么原因,用过ORACLE 的高手帮忙呀。

解决方案 »

  1.   

    你用SQL Server的DTS导以下看看能连上Oracle不
    要不随便建个.udl的文件,测试以下能连上Oracle不
      

  2.   

    我是在服务器上做的,还用安客房端吗?不是包括了客户端了吗。我测试的机子上安的ORACLE9i 用sql/plus没问题。
      

  3.   

    http://dev.wl668.com/sql/manager/20055265703_3997588.shtmlhttp://support.microsoft.com/kb/280106/zh-cn
      

  4.   

    to :liuningxy(想你) 
    用DTS可以连上。只是看不见T1这个表,可是这个表我已经建了,还加了两条数据,在SQL/plus
    中也能查询出来。建完后,我用ADOX看他的属性是SYSTEM TABLE ,不知道是不是这个原因。
      

  5.   

    现在给我搞糊涂了,在同时安装了ORACLE 和MSSQL的机子上,还用不用安装ORACLE的客户端啊。
      

  6.   

    在Oracle里面建了这张表,但是看不见,
    是不是建的表不属于同一个用户?
    你可以在oracle里面重建着长表试试看!
    估计是oracle里面的权限问题
      

  7.   

    楼上的,我是在DTS中看不见。
      

  8.   

    DTS钟你要用账号去连接oracle呀。
    你在oracle里面用你这个账号登陆
    分别用
    connect uid/pwd;

    connect uid/pwd as sysdba;然后
    desc t1;
    试试看能不能找到表T1
      

  9.   

    是这样的,我用ADOX 查看,所有的表时,能找到我建的表,
    同时,也能看到很多系统表,由于是用SYSTEM建的表,
    所有表的属性是SYSTEM TABLE 只是传输的过程中出错。
    用  liuningxy(想你)的方法,在DTS中传了一下,
    不能发现我建的表,但是能传别的表。实在是不知道是哪里的错了。
      

  10.   

    SELECT * INTO t1 FROM openrowset
    ('MSDAORA,'data source=abc;uid=system;password=sys123','select * from system.T1')-----------------
    Provider改成 'MSDAORA' 是ORACLE的连接,Oracle库中有system这个库吗?
    语法是 select *  from  库名.用户名.表名
      

  11.   

    感谢大家,UP,
    正在测试Softlee81307(孔腎) 的方法。
    不过原来我也用过
    msdaora 不行才用的OraOLEDB.Oracle
      

  12.   

    不行呀SELECT * INTO t1 FROM openrowset
    ('MSDAORA','data source=abc;uid=system;password=sys123','select * from abc.system.T1')错误提示OLE DB 提供程序 'MSDAORA' 报错。 
    [OLE/DB provider returned message: ORA-12560: TNS: 协议适配器错误]我哭。
      

  13.   

    如果语句比较复杂,操作比较频繁的话,不建议使用openrowset来实现对远程数据库的操作
    可以考虑使用链接服务器来进行数据的操作--创建链接服务器
    EXEC sp_addlinkedserver '链接名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=链接服务器名;UID=sa;PWD=密码;'
    EXEC sp_addlinkedsrvlogin '链接名', 'false', NULL, 'sa', '密码'
    --执行语句
    insert into 链接名.数据库名.dbo.表名 select * from 表名
    --删除链接服务器
    exec sp_droplinkedsrvlogin '链接名',null
    exec sp_dropserver '链接名'
    如果要用列子如下:
    select * from openrowset
    ('SQLOLEDB','192.168.1.11';'sa';'samima',MyTable.dbo.uuu2) --SQLOLEDB注意使用这个参数
      

  14.   

    创建链接服务器(select * from 链接服务器名.数据库名.dbo.表名)
      

  15.   

    如果我用
    SELECT * INTO [dbo].[T1] FROM openrowset
    ('OraOLEDB.Oracle','data source=abc;uid=system;password=sys123;','select * from abc.system.T1')报错:
    OLE DB 提供程序 'OraOLEDB.Oracle' 报错。 
    [OLE/DB provider returned message: ORA-01017: ΞЧ�ēû�û/�ځ�ܾ��ǂ�]
      

  16.   

    roy_88(论坛新星_激情要燃烧) 
    我用:
    SELECT * INTO DR$PARAMETER FROM openrowset
    ('SQLOLEDB','data source=192.168.1.133;uid=system;password=sys123','select * from abc.system.DR$PARAMETER')
    提示
    用户 'system' 登录失败。
    可是密码就是:sys123 
      

  17.   

    在sql/plus里面
    select * from user_tables where table_name="t1"
    看有没有数据。
      

  18.   

    没有,提示是未选定行可是我insert into t1(mid,mname)values(1,'yang')
    了呀。
      

  19.   

    先使用Oracle客户端软件设定一个网络服务名称,如:"OracleServer'﹝请参考Oracle手册﹞ 
    在SQL Server 7.0中,使用链接的服务器连接到Oracle. 如: sp_addlinkedserver 'TESTLINK', 'Oracle', 'MSDAORA', 'OracleServer', ps. 'TESTLINK'是由您自定义的,'Oracle', 'MSDAORA'是固定的,'OracleServer'是由步骤1确定的。 
    在SQL Server 7.0中,使用addlinkedsrvlogin登录到Oracle. 如: sp_addlinkedsrvlogin 'TESTLINK', 'false', NULL,'OracleUsr', 'OraclePwd' ps. 'TESTLINK'是步骤2确定的,'OracleUsr'是Oracle用户名,'OraclePwd'是用户密码。 
    执行T-SQL语句。如: select * from .... ps.linkservername是步骤2确定的。