ошибка matlab при подключении к базе данных postgresql - PullRequest
1 голос
/ 01 ноября 2019

Я пытаюсь подключиться к базе данных 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.

Я видел другие вопросы по этому поводу,как этот но сообщение об ошибке другое.

Что я делаю не так?

1 Ответ

0 голосов
/ 05 ноября 2019

Я нашел решение самостоятельно, и это сложно (возможно, это связано с ошибкой, на мой взгляд).

Чтобы проверить соединение с базой данных, я сначала создал соединение с проводником баз данных. ,Это сработало, и я сохранил это соединение, используя то же имя базы данных.

Когда я использую команду database, проверяя ее исходный код, я увидел, что первое, что он делает, это проверяетесли существует источник данных с таким именем и, если нет, он ищет базу данных. Проблема заключалась в том, что, поскольку у моего соединения было то же имя базы данных, database предполагало, что я хотел использовать версию команды источника данных вместо базы данных. Он попытался использовать эту команду:

conn = database(datasource,username,password)

вместо этой:

conn = database(databasename,username,password,driver,url)

, поскольку wtrade является одновременно именем базы данных и источника данных. В этом случае четвертый аргумент, driver, должен быть именем параметра, например "Vendor" из "PortNumber", согласно документации Matlab, поэтому, поскольку строка драйвера не совпадает с именем параметра, у меня возникла ошибка.

Я удалил источник данных с тем же именем базы данных, и все начало работать.

Я уведомил об этом MathWorks, так как, по моему мнению, не должно быть проблем, если база данных имеетодно и то же имя источника данных, поскольку подпись различна, поэтому команда database должна обрабатывать и этот случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...