SQLSERVER遠程鏈接Oracle數據庫


原文地址:
使用SQL鏈接服務器遠程訪問Oracle數據庫
 
在本機上通過SQL數據庫的鏈接服務器的方式,遠程訪問Oracle數據庫
這樣使用一個Sql的連接,就可以訪問 Sql Server , Oracle , Access等多種數據庫了。
 
條件:
      1 oracle數據庫安裝在其它機器上
      2 本機上安裝oracle客戶端(如果是新裝的客戶端,必須重啟電腦才能選擇 Oracle Provider for OLE DB)
      3 本機安裝SQL數據庫
 
對於 SQL建立鏈接服務器的方法,詳細參見以下博文
 
一 本機電腦上Oracle 客戶端服務配置
 
 1 在電腦上安裝Oracle 客戶端
 2 創建Oracle 客戶端服務
 
  開始 -- Oracle - OraClient10g_home1 -- 配置和移植工具 -- Net Manager
 
 3 創建服務名
   左側欄 展開到  Oralce Net配置 -- 本地  -- 服務命名 。
   右擊創建一個名為:  svrtsm1wind 服務名
 
4 配置遠程的地址
  右側欄,
    服務標識:
         服務名:wind   就是遠程機器上Oracle中一個數據庫的名稱
    地址配置:
協議:tcp/ip
        主機名:svrbbdb2 就是遠程主機的名稱
        端口號:1521
 
  將來就能通過 svrtsm1wind 遠程訪問 機器svrbbdb2 上的數據庫 wind,端口號為1521
            SqlServer鏈接服務器遠程訪問Oracle數據庫
 
 
二 本機Sql Server數據庫上 配置 Oralce 服務鏈接器
 
 1 啟動SQL數據庫
 2 展開 數據庫 -- 服務器對象 -- 鏈接服務器
 3 右擊 鏈接服務器 -- 新建鏈接服務器, 彈出配置屬性畫面, 
   在“常規”中的 鏈接服務器: svrtsm1wind
         這是引用鏈接服務器時將使用的名稱,就是后面在程序中使用的鏈接名稱
   服務類型選擇 其他數據源
   訪問接口:Microsoft OLE DB Provider for Oracel 或 Oracle Provider for OLE DB (如果是新裝的客戶端,必須重啟電腦才能選擇)
   產品名稱:Oracle
   數據源: svrtsm1wind  就是上面步驟一創建的Oracle 服務的網絡名稱。
 
SqlServer鏈接服務器遠程訪問Oracle數據庫



 4 在“安全性”中,本地登錄輸入 sa  遠程用戶 wcadmin 遠程密碼:wcadmin
 
SqlServer鏈接服務器遠程訪問Oracle數據庫
 
 
 5 使用此安全上下文建立連接 遠程用戶 wcadmin 使用密碼:wcadmin
   
     注意: wcadmin就是遠程機器上Oracle的數據庫的用戶和密碼
 
 6 右擊 剛建立的  svrtsm1wind -- 測試連接, 直到成功為止
 
 
三 C#中有關操作數據庫的語句
 
  以下使用的就是 Sql Server 中創建的鏈接服務器  svrtsm1wind
 1 插入語句
    string strinsert = string.Format("insert into openquery( svrtsm1wind,'select name,age from tb') values('{0}',{1})", FLHAO, 4);
    DbHelper.ExecuteSql(strinsert);
 
 2 修改語句
    string strupdate = string.Format("update openquery( svrtsm1wind,'select name,age from tb ') set age={0} where name='{1}'", 5, FLHAO);
    DbHelper.ExecuteSql(strupdate);
 
 3 刪除語句
   StringBuilder strSql = new StringBuilder();
   strSql.Append("delete from openquery( svrtsm1wind,'select * from tb') where id=1");
   int rows = DbHelper.ExecuteSql(strSql.ToString());
 
 
4 查詢語句
 
       string strSql = "select * from openquery( svrtsm1wind,'select max(id) as xuhao from tb');";
       DataTable dt = DbHelper.Query(strSql).Tables[0];
 
 
 
 5 操作類
 
  public partial class DbHelper
    {
 
        /// 數據庫連接字符串
        private static string m_connectionString = null;
 
        public static string ConnectionString
        {
            get
            {
                if (m_connectionString == null)
                {
                    m_connectionString = WebConfigurationManager.ConnectionStrings[" OracleConnection"].ToString();
                }
                return m_connectionString;
            }
            set
            {
                m_connectionString = value;
            }
        }
 
 
        public static int ExecuteSql(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        connection.Close();
                        throw new Exception(E.Message);
                    }
                }
            }
        }
 
 
       public static DataSet Query(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    command.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }
        }
 
 
  }
 
 
四 配置 web.config,針對自己的Sql數據庫
 
  自己電腦  my_pc上SQL的一個數據庫  my_sql_db 的連接 OracleConnection ,通過它就可以遠程訪問Oracle
 
< ?xml version="1.0"?>
< configuration>
   < connectionStrings>
    < add name=" OracleConnection" connectionString="server= my_pc;uid=sa;pwd=;database= my_sql_db;Pooling=true;"/>
    < /connectionStrings>
 < /configuration>
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM