[英]matlab error when connecting to postgresql database
我正在嘗試使用以下命令連接到 PostgreSQL 數據庫:
connection = database( ...
options.getDatabaseName(), ...
options.getUsername(), ...
options.getPassword(), ...
"org.postgresql.Driver", ...
"jdbc:postgresql://" + options.getHostname() + ":" + options.getPort() + "/" + options.getDatabaseName() ...
);
它返回我以下錯誤:
Error using database (line 59)
Unmatched parameter name 'org.postgresql.Driver' must be a string scalar or character vector that can represent a field name.
我已經看到了其他問題,比如這個,但錯誤信息是不同的。
我做錯了什么?
我自己找到了解決方案,而且很棘手(在我看來可能與錯誤有關)。
為了測試數據庫連接,我首先創建了一個與數據庫資源管理器的連接。 它起作用了,我使用相同的數據庫名稱保存了這個連接。
當我使用database
命令時,通過檢查它的源代碼,我發現它首先檢查是否存在具有該名稱的現有數據源,如果沒有,它會搜索數據庫。 問題是由於我的連接具有相同的數據庫名稱,因此database
假設我想使用數據源命令版本而不是數據庫。 它試圖使用這個命令:
conn = database(datasource,username,password)
而不是這個:
conn = database(databasename,username,password,driver,url)
因為wtrade
既是數據庫的名稱,也是數據源的名稱。 在這種情況下,根據 Matlab 文檔,第四個參數driver
必須是參數名稱,例如"Vendor"
的"PortNumber"
,因此由於驅動程序字符串與參數名稱不匹配,因此我遇到了錯誤。
我已經刪除了與數據庫同名的數據源,一切都開始工作了。
我已將此通知 MathWorks,因為在我看來,如果數據庫具有相同的數據源名稱應該沒有問題,因為簽名不同,所以database
命令也應該處理這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.