2010-02-16 162 views
0

我有一個使用業務對象提供程序的SSRS報告。該DLL與Oracle服務器有連接。每當我運行報告我不斷收到此錯誤信息:SSRS:Oracle TNS:偵聽器錯誤?

「Oracle.DataAccess.Client.OracleException ORA-12514:TNS:監聽器目前不知道服務的連接描述符請求」

任何人都知道這是爲什麼?

回答

1

這聽起來像你安裝Oracle客戶端,但還沒有設置您的TNS監聽器。

應該有一個名爲「tnsnames.ora中」文件和文件中,你需要添加一個新的監聽器。如果是Windows安裝,則可能還有網絡配置GUI。

+0

我應該在新的監聽器中添加什麼? – sanjeev40084

+0

連接到oracle數據庫可以通過兩種方式完成,一種是直接連接:即host + password + port + schema。另一種方法是通過TNS名稱。您將主機+密碼+端口存儲在tns文件中。設置TNS_ADMIN =/path/to/folder /其中/ tnsfile /並引用所述TNS文件。 – Achille

+0

如果您打開tnsnames.ora文件,您應該看到一個示例,您可以從另一個數據庫複製配置文件並將信息更改爲您的服務器和數據庫。 – Ben

0

一般tnsnames.ora中的條目是這樣的,如果你選擇走那條路:

DBAlias = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)) 
    (CONNECT_DATA = (SERVICE_NAME = YourDBServiceName)) 
) 

tnsnames.ora文件通常駐留在ORACLE_HOME/network/admin目錄。從技術上講,您不是「創建監聽者」,而是爲Oracle客戶端網絡連接字符串定義一個別名,指的是某個偵聽器的某個地方的

或者,您可以指定一個字符串EZCONNECT,如果你不想/不能惹的tnsnames.ora條目:

"Data Source=//yourserver:1521/yourDB;User ID=theUser;Password=thePW" 

您需要在sqlnet.ora文件的條目效果如下:

NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)