簡體   English   中英

matlab 連接到 postgresql 數據庫時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM