从MSSQL添加对Oracle的链接服务器的存储过程 /* 
 Name :           Stp_TianJiaLianJieFuWuQi 
 Function :       添加链接服务器并设置其服务器选项和安全性选项 
 Steps :           调用系统存储过程sp_addlinkedserver添加链接服务器 
                        调用系统存储过程sp_serveroption设置链接服务器选项 
                        调用系统存储过程sp_addlinkedsrvlogin添加对链接服务器的登录 
 Author :          Waxdoll Cheung 
 Date :            2003-12-11 
*/ 
CREATE PROCEDURE dbo.Stp_TianJiaLianJieFuWuQi 
AS 
 -- 添加链接服务器 
 EXEC sp_addlinkedserver 
   -- 链接服务器名称 
   @Server = 'ORC', 
   -- 产品名称 
   @SrvProduct = 'Oracle', 
   -- 数据驱动提供者 
   @Provider = 'MSDAORA', 
   -- Oracle数据源 
   @DataSrc = 'ORC'  -- 设置链接服务器选项 
 -- 数据访问选项设置为TRUE 
 EXEC sp_serveroption 
   @server  = 'ORC', 
   @optname = 'Data Access', 
   @optvalue = 'TRUE' 
 -- RPC选项设置为TRUE 
 EXEC sp_serveroption 
   @server = 'ORC', 
   @optname = 'RPC', 
   @optvalue = 'TRUE' 
 -- RPC OUT选项设置为TRUE 
 EXEC sp_serveroption 
   @server = 'ORC', 
   @optname = 'RPC OUT', 
   @optvalue = 'TRUE' 
 -- 使用远程排序规则选项设置为TRUE 
 EXEC sp_serveroption 
   @server = 'ORC', 
   @optname = 'Use Remote Collation', 
   @optvalue = 'TRUE'  -- 添加对链接服务器的登录 
 EXEC sp_addlinkedsrvlogin 
   -- 链接服务器名称 
   @rmtsrvname = 'ORC', 
   -- false 值指定 rmtuser 和 rmtpassword 参数用来连接到特定 locallogin 的 rmtsrvname 
   @useself = 'false', 
   -- 本地服务器上的登录 
   @locallogin = 'sa', 
   -- 当 useself 为 false 时,用来连接 rmtsrvname 的用户名 
   @rmtuser = 'xzycnc', 
   -- 与 rmtuser 相关的密码 
   @rmtpassword = 'neo' 
 RETURN 
GO 

解决方案 »

  1.   

     转贴一个范例,你可以参考一下。
    SQL> CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\Oracle'; --图片目录目录已创建。SQL> CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS
         F_LOB BFILE;
         B_LOB BLOB;
      BEGIN
        INSERT INTO IMAGE_LOB (T_ID, T_IMAGE)
        VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB;
        F_LOB:= BFILENAME ('IMAGES', FILENAME);
        DBMS_LOB.FILEOPEN (F_LOB, DBMS_LOB.FILE_READONLY);
        DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB));
        DBMS_LOB.FILECLOSE (F_LOB);
        COMMIT;
      END;
      /过程已创建。SQL>-- 示例SQL> EXEC IMG_INSERT('1','f_TEST.jpg');PL/SQL 过程已成功完成
      

  2.   

    两台服务器.
    有没有试过SSIS,能否导入?
      

  3.   


                    insert into GscMisDocFile(TableIdOfGscMisDocFile,GscMisDocFileCo
    deId,GscMisDocFileGuid,TableFieldNameOfDocFileFrom,TableNameOfDocFileFrom,TableK
    eyCodeIdOfDocFileFrom,TableKeyCodeId_ValueOfDocFileFrom,FileNameOfGscMisDocFile,
    BinaryDataOfGscMisDocFile,GscMisDocFileNowIsDeleted,OrganCodeIdOfInsertGscMisDoc
    File,OrganNameOfInsertGscMisDocFile,UserCodeIdOfInsertGscMisDocFile,UserNameOfIn
    sertGscMisDocFile,DateTimeOfInsertGscMisDocFile,OrganCodeIdOfDeleteGscMisDocFile
    ,OrganNameOfDeleteGscMisDocFile,UserCodeIdOfDeleteGscMisDocFile,UserNameOfDelete
    GscMisDocFile,DateTimeOfDeleteGscMisDocFile,AREACODE) values('10598','2008072416
    5048049700','20080724165048068257','GscAplOnceNoticeDocFileGuidOfGscUserCreate',
    'GscAplOnceNotice','GscAplOnceNoticeCodeId','20080724165048042910','一次性补正通
    知单(法人).doc','com.microsoft.jdbc.base.BaseInputStreamWrapper@3c8308','0','s
    ichuan-ScGsc-Org-2008-1','xxx','sichuan-ScGsc-User-2008-325','xxx'
    ,'1900-01-01 00:00:00.0','','','','','1900-01-01 00:00:00.0',1)这个就是准备INSERT到ORACLE的语句
    所有字段的内容都是从SQL SERVER里SELECT出来的
    其中'com.microsoft.jdbc.base.BaseInputStreamWrapper@3c8308'就是getBinaryStream()出来的
    这个怎么INSERT到ORACLE里啊?

    急啊