2017-01-16 68 views
1

目前,我正在開發一個需要在oracle中完成後端工程的項目。我使用了給定的link,並在我的Mac上使用npm安裝了node-oracledb。我的文件內容如下使用節點oracle-db時出現ORA-12514錯誤npm packagae

var oracledb = require('oracledb'); 

oracledb.getConnection(
{ 
user   : 'username', 
password  : 'password', 
connectString : 'username/password//hostname:port/sid' 
function(err, connection) 
{ 
if (err) { 
    console.error(err.message); 
    return; 
}else{ 
    connection.execute(
    "SELECT * from TableName", 
    function(err, result) 
    { 
    if (err) { console.error(err); return; } 
    console.log(result.rows); 
    }); 
} 
}); 

當我運行節點filename.js我收到以下錯誤

ORA-12154: TNS:could not resolve the connect identifier specified 

我使用的節點版本是v7.0.0和NPM版本是v3.10.8。另外我的oracle數據庫是雲上的一個11g實例。有人可以讓我知道我做錯了什麼嗎?

+0

我知道這個問題已經解決了,但我面對類似的問題。我在節點oracledb中提到了方向提及。我已經安裝了instantclient basic和sdk並設置了它們的路徑。只要我安裝oracle 11g express,就會得到'oracledb模塊無法找到'錯誤。當我卸載11g express時,出現錯誤'ORA-12541:TNS:no listener'。你可以請指導我如何安裝11g和什麼是我的連接字符串? – user557657

回答

2

它看起來像你的connectString中是錯誤的,根據Docs豈不等於只是主機名:端口/ SID

var oracledb = require('oracledb'); 

oracledb.getConnection(
    { 
    user   : "hr", 
    password  : "welcome", 
    connectString : "hostname:port/sid" 
    }) 
    .then(function(conn) { 
    return conn.execute(
     "SELECT department_id, department_name " + 
     "FROM departments " + 
     "WHERE manager_id < :id", 
     [110] // bind value for :id 
    ) 
     .then(function(result) { 
     console.log(result.rows); 
     return conn.close(); 
     }) 
     .catch(function(err) { 
     console.error(err); 
     return conn.close(); 
     }); 
    }) 
    .catch(function(err) { 
    console.error(err); 
    }); 
+1

從技術上說,斜線後面的連接字符串的位是「服務名稱」,而不是SID。完整的Easy Connect語法如下所示:http://docs.oracle.com/database/122/NETAG/configuring-naming-methods.htm#NETAG255使用服務名稱可讓Oracle Network在將應用程序連接到運行實例。服務名稱早已引入(版本8?)並已成爲標準。 –

+0

我知道這個問題已經解決,但我面臨類似的問題。我在節點oracledb中提到了方向提及。我已經安裝了instantclient basic和sdk並設置了它們的路徑。只要我安裝oracle 11g express,我得到錯誤oracledb模塊無法找到。當我卸載11g express時,我得到錯誤ORA-12541:TNS:沒有監聽器。你可以請指導我如何安裝11g和什麼是我的連接字符串? – user557657