2010-12-14 48 views
1

我從Oracle DBA獲得以下信息,並希望從.net應用程序連接到Oracle。我剛剛完成了爲windows/.net安裝oracle工具/驅動程序,現在想要獲得一個控制檯應用程序來連接oracle數據庫並將數據從oracle提取到SQL服務器。我如何連接到oracle與我有的信息?

另一個解決方案是讓SQL服務器從oracle中獲取bug表中的所有記錄。我不知道oracle的連接字符串是什麼,並試圖建立一個系統DSN,而是將目光轉向了SO大師未能在此之前...

的Oracle SQL的用戶名是「USER_dev」, 密碼'歡迎'。

連接字符串 「的jdbc:汞:神諭://qct-ds2-p.apps.com:1139; SID = QCTRP1」

+0

我希望這不會是真正的密碼.... – RedFilter 2010-12-14 15:20:02

+0

所有數據的部分已被修改。但信息保持機密。 – kacalapy 2010-12-14 15:24:48

回答

0

進入你的ORACLE_HOME \網絡\ admin目錄。如果它不存在,創建一個名爲tnsnames.ora的文件。這種添加進去:

QCTRP1.WORLD = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = qct-ds2-p.apps.com)(PORT = 1139)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = QCTRP1) 
    ) 
) 

我在這裏做一些假設...

確實qct-ds2-p.apps.com解決? 看起來像DBA在端口1139上設置偵聽器...默認情況下通常是1521,因此您需要確認。

然後,您可以建立一個連接字符串如下:

Connection conn = DriverManager.getConnection 
    ("jdbc:oracle:oci8:@QCTRP1.WORLD", "dev", "welcome"); 
+0

我找不到ORACLE_HOME \ network \ admin目錄? – kacalapy 2010-12-14 15:52:47

+0

@kacalapy oracle_home是安裝Oracle的目錄 – Sathya 2010-12-14 16:31:20

+0

找到它,將txt添加到文件中。無法得到的。運行「select * from BUG」的網絡代碼並將數據填充到數據集中。請幫忙。 – kacalapy 2010-12-14 16:50:16

0

現在,你必須從@erbsock創建TNSNAMES,你將需要得到的東西 工作.NET方面。 Oracle有幾個教程可以幫助你解決這個問題。

當您安裝Oracle ODP(中的鏈接,你會看到樣品以及在下載)驅動程序,你會得到在 %ORACLE_HOME%\ odp.net \樣本\ 4 \數據集\ DSPopulate的\ src目錄創建 (這看起來與位於@http://www.oracle.com/technology/sample_code/tech/windows/odpnet/DSPopulate/ViewProducts.cs.html的示例相同)

作爲初始測試,我建議只更改id/passwrd/sql/etc並嘗試一下。

它與使用System.Data並沒有根本的區別;但有幾個小問題,並記住每臺計算機都需要安裝ODP/Oracle客戶端才能使用ora連接。

如果您有任何問題

張貼的顯示,以及你的.NET代碼片段建立連接確切的錯誤味精,不查詢,並在那裏打破

1

我很幸運,找到一個簡單的解決方案,所有.net,並只需要通過連接字符串的這種語法。所有.ora文件都顯示在連接字符串中,並且運行良好。

static void getData() 
     { 
      string connectionString = GetConnectionString(); 
      using (OracleConnection connection = new OracleConnection()) 
      { 
       connection.ConnectionString = connectionString; 
       connection.Open(); 
       //Console.WriteLine("State: {0}", connection.State); 
       //Console.WriteLine("ConnectionString: {0}", connection.ConnectionString); 

       OracleCommand command = connection.CreateCommand(); 
       string sql = "SELECT * FROM BUG"; 
       //string sql = "SELECT table_name FROM user_tables"; 
       command.CommandText = sql; 

       OracleDataReader reader = command.ExecuteReader(); 
       while (reader.Read()) 
       { 
        //string myField = (string)reader["Project"]; 
        string myField = (string)reader[0]; 
        Console.WriteLine(myField); 
       } 
      } 

     } 

     static private string GetConnectionString() 
     { 
      return "User Id=USER_dev;Password=welcome;Data Source=(DESCRIPTION=" + 
        "(ADDRESS=(PROTOCOL=TCP)(HOST=111.123.479.24)(PORT=1139))" + 
        "(CONNECT_DATA=(SID=QCTRP1)));"; 

     } 
相關問題