Произошла ошибка Oracle, но не удалось получить сообщение об ошибке из Oracle
Есть приложение delphi, в котором я пытаюсь подключиться к базе данных Oracle, используя поставщика MSDAORA.1, но проблема заключается в подключении. Появляется сообщение об ошибке Oracle: "Произошла ошибка Oracle, но сообщение об ошибке не может быть получено из Oracle"
Я могу подключиться к базе данных с клиентом Oracle10g.
Connection String: Provider=MSDAORA.1;
User ID=murat;
Password = murat;
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST= INGPSP)(PORT=1521))(CONNECT_DATA=(SID=INGPSP)));
Persist Security Info=False;
Пожалуйста, предоставьте свое экспертное мнение, что может быть причиной этого?
2 ответа
В названии службы, похоже, не хватает вашего адреса.
Установите файл tnsnames.ora и используйте эту запись в качестве источника данных вместо заданного вами параметра data_source. Следуйте инструкциям в разделе часто задаваемых вопросов.
Или используйте строки подключения, такие как "//host[:port]/[service_name]" для вашего источника данных: //INGPSP:1521/ServiceName
Для Oracle как поставщики Microsoft, так и поставщики Oracle OleDB имеют проблемы с BLOB. Если можете, используйте другое средство связи.
Что я вижу странным, так это то, что ваш HOST и SID одинаковы. HOST - это имя компьютера в вашей сети, а SID - это экземпляр базы данных на этом компьютере. Я создал следующую ConnectionString для базы данных PRD3 на компьютере DB19 (в нашей базе данных есть несколько баз данных DB19). Мне удалось успешно подключиться к базе данных с реальным идентификатором пользователя и паролем.
Provider=MSDAORA.1;
Password=123456;
User ID=abc;
Data Source="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db19)(PORT=1521))(CONNECT_DATA=(SID=prd3)))";
Persist Security Info=True
Обычно источником данных, который я использую, является имя базы данных, определенное в TNSNAMES.ORA. Это гораздо меньше для ввода (меньше потенциальных ошибок) и может быть изменено на другую базу данных без перекомпиляции программы (например, переключение между базой данных разработки и производственной базой данных).