是否可以在不使用 ODBC 的情況下連接到 IBM DB2 資料庫?你好,
我們透過 SSL 連線使用 IBM DB2 資料庫。 OCBC 與資料庫的連線運作良好,但對於大多數使用者來說設定起來相當複雜。如果軟體可以使用“類型 4 db2 連接”,則不需要 odbc。僅將“連接字串”直接傳送到遠端伺服器。此字串的參數通常直接在軟體中配置。連接配置是在軟體中使用適當的參數建立的,IT 人員可以輕鬆記錄並由使用者執行。
我覺得JMP不直接支援“類型4連接”,但R和python支援。也可以在 JSL 腳本中提取數據,如下例所示。我們能否建立一個小的 python 腳本來建立一個可供 JSL 或查詢產生器使用的資料庫連線?
// JSL Script to extract some IBM DB2 data
New SQL Query(
Connection(
"ODBC:DSN=DBPROD1;MODE=SHARE;PWD=%_PWD_%;SECURITY=SSL;SSLCLIENTKEYSTASH=C:\BRMDB2\ssl\truststore.sth;SSLCLIENTKEYSTOREDB=C:\BRMDB2\ssl\truststore.kdb;SSLSERVERCERTIFICATE=C:\BRMDB2\ssl\carootcert.der;UID=%_UID_%;"
),
QueryName( "Extract exemple" ),
CustomSQL(
"SELECT NAME
,EMPLOYEE_NB
,DEPARTMENT
,SALARY
FROM
EMPLOYEE_TABLE
WHERE
DEPARTMENT = 'MFG02'"
)
) << Run感謝您的幫忙!
資料存取回覆:是否可以在不使用 ODBC 的情況下連接到 IBM DB2 資料庫?基於此資料連接器,您必須使用 ODBC。另一種選擇是利用 Python 整合來進行查詢。編寫一個函數,該函數接受查詢,並在其中執行 Python 腳本來執行查詢並將結果作為資料表傳回。
回覆:是否可以在不使用 ODBC 的情況下連接到 IBM DB2 資料庫?你好,
這在某種程度上是我的想法,但我希望連接可以是獨立建立的物件並可用於 SQL 查詢。我將測試您的建議並在這裡提供反饋。我假設我可以編寫一個 Python 腳本“模板”,我的同事可以將其貼到他們的 JMP 中,並根據他們的需求添加 SQL 程式碼。我確信它應該有效。不過,我會檢查這個解決方案是否有效並且可供我的同事使用。如果是,我將在此處提供反饋並接受該回應作為可接受的解決方案。這取決於他們對 SQL 的熟練程度以及表格的大小。
謝謝您的回复,
回覆:是否可以在不使用 ODBC 的情況下連接到 IBM DB2 資料庫?我不確定這種類型的連接器是否可以在 JMP18 中完成,因為此插件具有最低版本的 JMP19 EA 3、 S3 資料連接器 (JMP Marketplace) ,但它似乎使用 Python 作為 AWS S3 的連接器。如果它可以在 JMP18 中使用,它可能會給您一些可以做什麼的想法。您應該能夠下載該加載項,然後使用 7zip 等將其解壓縮。
回覆:是否可以在不使用 ODBC 的情況下連接到 IBM DB2 資料庫?你好,
對於oracle和postgre資料庫,我們可以只發送連接字串。
我認為這種方法對於 db2 也應該是可行的,而無需為每台電腦設定 odbc 的名稱。
我可以計劃這個月或下個月嘗試。
問候,
紀堯姆
回覆:是否可以不使用 ODBC 連線到 IBM DB2 資料庫?你好,
抱歉我回答遲了。
你可以這樣做(在我這邊已經測試過了)。
db2_connect =
"DRIVER={IBM DB2 ODBC DRIVER};
DATABASE= strDatabase;
HOSTNAME= strHostname;
PORT= strPort;
PROTOCOL=TCPIP;
UID= strUser;
PWD= strPassword;";
OpenDatabase(db2_connect, "SELECT * FROM SYSIBM.SYSDUMMY1;", "sysdummy1");You have to define the DRIVER and all other varaibles strDatabase, strHostname, strPort, strUser, strPassword
使用 SSL,您可以嘗試以下操作(未經測試):
"DRIVER={IBM DB2 ODBC DRIVER};
DATABASE=strDatabase;
HOSTNAME=strHostname;
PORT=strPort;
PROTOCOL=TCPIP;
SECURITY=SSL;
UID=strUser;
PWD=strPassword;
SSLCLIENTKEYSTOREDB=/path/to/client/keystore.kdb;
SSLCLIENTKEYSTASH=/path/to/client/keystore.sth;
SSLCLIENTKEYPASSWORD=keystore_password;"
問候,
紀堯姆
回覆:是否可以不使用 ODBC 連線到 IBM DB2 資料庫?您可能需要使用更多的連線參數進行 SSL 連線。