Подключение к oracle через odbc
ОDBC - это стандартизованное API, разработанное по спецификации SQL Access Group, которое
позволяет соединяться с любой базой данных, поддерживающей SQL. В нем определен стандартный
набор функций, кодов ошибок и типов данных, которые можно использовать для разработки приложений,
независимо от базы данных. Обычно, ODBC используется, если требуется независимость от базы данных,
или осуществляется работа с разными источниками данных.
- (Главное) Не поддерживает большинства расширений Oracle ниже чем у OOO4O
Что такое Oracle Objects for OLE (OO4O)?
- Полная поддержка координатора транзакций в Microsoft Transaction Server (MTS)
- (Главное) Простой доступ к переменным и объектам специализированных типов данных реализованных в Oracle, включая:
- Object References (REFs – ссылочный тип)
- Object Instances (Objects – объектный тип)
- Nested Tables (Вложенные таблицы)
- Varrays (Массивы переменной длины)
- BLOBs, CLOBs, NCLOBs and BFILEs
Недостатки: Необходимо установить клиент Oracle на каждой пользовательской машине где планируется работать через OO4O.
Теперь рассмотрим сам процесс работы через OO4O.
Для начала нужно установить клиентскую часть Oracle которая идёт вместе с поставкой СУБД Oracle.
Затем сконфигурировать файл tnsnames.ora который находится в директории:
. \oracle\ora92\network\adminПриведите содержание файла к следующему виду:
ИмяБазы=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=IPАдресСервера)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=ИмяБазы)
)
)Введите свое ИмяБазы и IPАдресСервера и сохраните файл.
В 1С соединение с базой выглядит следующим образом:
session = Новый COMОбъект ( "OracleInProcServer.XOraSession" ); //Создаем COM обьект
db = session . OpenDatabase ( Base , Login + " / " + Pass ,); //Открываем базуЕсли метод session.LastServerErr возвратит ноль значит соединение прошло успешно, если возвратит другое число
значит произошла ошибка, которая будет описана в методе session.LastServerErrText
Функция ПодключитьсяКБазеOralce ( Base , Login , Pass )
Попытка
session = Новый COMОбъект ( "OracleInProcServer.XOraSession" );
db = session . OpenDatabase ( Base , Login + "/ " + Pass ,);
Исключение
Сообщить ( session . LastServerErrText );
КонецПопытки;
Возврат session . LastServerErr
КонецФункцииПосле того как подключились к базе попытаемся выполнить запрос к ней. Но для начала нужно установить параметры запроса если таковые имеются:
db . Parameters . Add ( Ключ1 , Значение1 , 1 );
db . Parameters . Add ( Ключ2 , Значение2 , 1 );
db . Parameters . Add ( КлючN , ЗначениеN , 1 );
При установке параметров нужно учитывать следующее: при повторном запросе с параметрами к открытой базе может возникнуть исключительная ситуация, дабы этого не происходило при каждом запросе очищайте параметры:
Для й = 0 по db . Parameters . Count - 1 Цикл
db . Parameters . Remove ( 0 );
КонецЦикла ;Ну и наконец сам запрос к базе выглядит так:
oradynaset = db.CreateDynaset ( ТекстЗапроса ,);
Пример функции которая записывает результат запроса в Таблицу значений :
Функция ЗапросКOracle ( ТекстЗапроса , Параметры =Неопределено )
Если Параметры <> Неопределено Тогда
Для й = 0 по db . Parameters . Count - 1 Цикл
db . Parameters . Remove ( 0 );
КонецЦикла ;
Для Каждого СтрПараметр Из Параметры Цикл
db . Parameters . Add ( СтрПараметр . Ключ , СтрПараметр . Значение , 1 );
КонецЦикла;
КонецЕсли;oradynaset = db.CreateDynaset ( ТекстЗапроса ,);
//Формируем структуру Таблицы значений из результата запроса
Тз = Новый ТаблицаЗначений;
ЧКТ = oradynaset . Fields . Count ();
Для сч = 0 По ЧКТ - 1 Цикл
Тз . Колонки . Добавить ( Строка ( oradynaset . Fields ( сч ). Name ()));
КонецЦикла ;//Копируем в Таблицу значений строки результата запроса
й = 1 ;
Пока ( oradynaset . EOF = 0 ) Цикл
СТЗ = Тз . Добавить ();
Для сч = 0 По ЧКТ - 1 Цикл
СТЗ [ Строка ( oradynaset . Fields ( сч ). Name ())] = oradynaset . Fields ( Строка ( oradynaset . Fields ( сч ). Name ())). Value ;
КонецЦикла;
Состояние ( "загрузка данных в таблицу значений: " + й + " из " + oradynaset.RecordCount ) ;й = й + 1;
oradynaset . MoveNext ();
КонецЦикла ;Возврат Тз
КонецФункцииПример Процедуры которая использует выше описанные функции:
Процедура Выполнить ()
// подключаемся к базе
Если ПодключитьсяКБазеOralce ( "ИмяБазы" , "Логин" , "Пароль" ) <> 0 Тогда
Возврат
КонецЕсли;// задаем текст запроса (в данном случае извлекаем данные за определенный период)
ТекстЗапроса = " SELECT *
|FROM dbName.TableName
|WHERE DATE between To_Date(:DATE1,:DFormat) And To_Date(:DATE2,:DFormat)
| " ;
// задаем параметры
Параметр1 = Дата1 ;
Параметр2 = Дата2 ;
Параметр3 = " ' yyyy.mm.dd hh24:mi:ss' " ;
ПараметрыЗапроса = Новый Структура ;
ПараметрыЗапроса . Вставить ( " DATE1 " , Параметр1 );
ПараметрыЗапроса . Вставить ( " DATE2 " , Параметр2 );
ПараметрыЗапроса . Вставить(" DFormat " , Параметр3 );
// выполняем запрос
Таблица = ЗапросКOracle ( ТекстЗапроса , ПараметрыЗапроса )
КонецПроцедурыИ на последок. Не забудьте что формат дат в 1С и ORACLE разный, поэтому дату до передачи в параметр нужно форматировать,
привести к виду: yyyy.mm.dd hh24:mi:ssВ этом разделе показано, как подключаться к источникам данных Oracle со страницы Выбор источника данных или Выбор назначения в мастере импорта и экспорта SQL Server. Для подключения к Oracle можно использовать ряд поставщиков данных.
Подробные требования и необходимые условия для подключения к базе данных Oracle выходят за рамки этой статьи Майкрософт. В ней предполагается, что у вас уже установлено клиентское программное обеспечение Oracle и вы можете успешно подключиться к целевой базе данных Oracle. Для получения дополнительных сведений обратитесь к администратору базы данных Oracle или к документации по Oracle.
Параметры подключения для этого поставщика данных одинаковы независимо от того, является ли Oracle источником или назначением. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.
Вам не нужно вводить строку подключения в поле ConnectionString списка. После ввода отдельных значений для имени сервера Oracle (источника данных) и информации для входа мастер собирает строку подключения из отдельных свойств и их значений.
Подключение к Oracle с помощью драйвера Microsoft ODBC для Oracle
Шаг 1. Проверьте установку драйвера.
Драйвер ODBC обычно предварительно устанавливается на вашем компьютере. Для получения дополнительной информации об установке драйвера или поиске и устранении неисправностей установки, свяжитесь со своим администратором базы данных или обратитесь к вашей документации базы данных относительно драйверов ODBC. Для получения информации о Microsoft ® ODBC Data Source Administrator, смотрите Установку драйвера.
Примечание:
Database Toolbox™ больше не поддерживает соединение с базой данных с помощью 32-битного драйвера. Используйте 64-битную версию Oracle. Если у вас есть проблемы, работающие с драйвером ODBC, используйте драйвер JDBC вместо этого. Для получения дополнительной информации смотрите Oracle JDBC для Windows. Для получения дополнительной информации о работе с 64-битной версией Windows ® , смотрите Используя Предыдущие Релизы MATLAB.
Совет
При подготовке источника данных ODBC можно задать пользовательское имя источника данных (DSN) или систему DSN. Пользователь DSN характерен для человека, регистрируемого в машину. Только этот человек видит источники данных, которые заданы на пользовательской вкладке DSN. Система DSN не характерна для человека, регистрируемого в машину. Любой человек, который регистрирует в машину, видит источники данных, которые заданы на системной вкладке DSN. Ваша способность настроить пользователя DSN или система, DSN зависит от базы данных и драйвера ODBC, который вы используете. Для получения дополнительной информации свяжитесь с администратором базы данных или обратитесь к документации драйвера ODBC.
Кликните по вкладке System DSN, и затем нажмите Add.
Диалоговое окно Create New Data Source открывает и отображается список установленных драйверов ODBC.
Выберите драйвер ODBC Oracle in OraClient11g_home1 .
Другие поставщики данных и дополнительные сведения
Сведения о подключении к Oracle с помощью поставщика данных, не представленного в этом списке, см. в разделе Строки подключения Oracle. Этот сторонний сайт также содержит дополнительные сведения о поставщиках данных и параметрах подключения, описанных на этой странице.
Этот пример показывает, как настроить источник данных и подключение к базе данных Oracle ® с помощью приложения Database Explorer или командной строки. Этот пример использует драйвер OraClient11g_home1 ODBC, чтобы соединиться с базой данных Oracle 11g Enterprise Edition.
Совет
Чтобы закрыть соединение с базой данных, закройте все вкладки, которые имеют заголовки, начинающиеся с имени соответствующего источника данных. Например, если именем источника данных является ORA , и две вкладки под названием ORA и ORA1 открыты, то закрывают обе вкладки.
Чтобы закрыть все соединения с базой данных, закройте приложение Database Explorer.
Соединитесь с Oracle Используя драйвер ODBC и командную строку
Чтобы соединиться с аутентификацией Windows, соединитесь с базой данных с аутентифицируемым именем источника данных ODBC и пустым именем пользователя и паролем. Например, этот код принимает, что вы соединяетесь с источником данных под названием Oracle_Auth .
Или, чтобы соединиться без аутентификации Windows, соединитесь с базой данных с именем источника данных ODBC. Например, этот код принимает, что вы соединяете с источником данных под названием Oracle с именем пользователя username и пароль pwd .
This article explains how to connect to Oracle with ODBC when using Windows 10.
It covers the following topics:
- How to connect to Oracle (with code samples).
- How to setup ODBC:
- Configure ODBC using the ODBC Data Source Manager:
We recommend using system DSNs (available to all users).
We strongly recommend using connection objects to connect to databases, and this is what we demonstrate in the code samples.
Follow these steps to connect:
- Create a new channel to try out the code:
- Create a channel like this:
- Name: DB Oracle Connection (or similar)
- Source: From Translator
- Destination: To Channel
- Alternatively use an existing channel:
- Create a channel like this:
Your channel will need a From/To Translator or a Filter component.
If your script uses connection object methods conn:query<> or conn:execute<> to connect to a remote Oracle database, the location of the remote host is specified as part of the name parameter in the db.connect < >command. If you use conn:merge<> to connect the remote host is specified as part of the name parameter in the conn:merge<> command itself.
Note: Iguana may not always support the very latest version of Oracle drivers, so you can simply download an earlier version if necessary. This is particularly true if you are not able to use the the latest version of Iguana.
To set up a new ODBC data source for Oracle Server:
-
Setup the Oracle instant client OCI drivers:
The Oracle ODBC package depends on the OCI drivers — so you need to set them up first.
Windows 10 (64 bit version) supports 32 and 64 bit ODBC sources — always use the 64 bit ODBC Administrator.
- Problems with connection settings:
Speak to your DBA (database administrator) for general connection issues like: User name and password, Database Server network name etc.
Login authentication errors:
Authentication errors usually relate to how the Oracle Server you are connecting to is setup. You will need to talk to the DBA (database administrator) that manages the Oracle server.
If you wish to use Windows integrated security speak to your DBA (database administrator).
Этот пример показывает, как настроить источник данных и подключение к Oracle ® база данных с помощью приложения Database Explorer или командной строки. Этот пример использует драйвер OraClient11g_home1 ODBC, чтобы соединиться с базой данных Oracle 11g Enterprise Edition.
Шаг 2. Настройте источник данных с помощью приложения Database Explorer.
Приложение Database Explorer получает доступ к Microsoft ODBC Data Source Administrator автоматически, когда вы конфигурируете источник данных ODBC. Также можно получить доступ к Microsoft ODBC Data Source Administrator с помощью функции configureODBCDataSource .
Откройте приложение Database Explorer путем нажатия на вкладку Apps на MATLAB ® Toolstrip. Затем справа от раздела Apps кликните по стрелке Show more, чтобы открыть галерею приложений. Под Database Connectivity and Reporting нажмите Database Explorer. Также введите databaseExplorer в командной строке.
В разделе Data Source выберите Configure Data Source> Configure ODBC data source.
В диалоговом окне ODBC Data Source Administrator вы задаете источник данных ODBC.
Шаг 3. Подключение с помощью приложения Database Explorer или командной строки.
Соединитесь с Oracle Используя приложение Database Explorer
На вкладке Database Explorer, в разделе Data Source, нажимают New Query.
В Подключении к диалоговому окну Data Source соединитесь с аутентификацией Windows путем выбора источника данных, который вы задали из списка Data Source. Оставьте пробел полей Username и Password. Нажмите Connect.
Или, соединитесь без аутентификации Windows путем выбора источника данных, который вы задали. Введите имя пользователя и пароль. Нажмите Connect.
Диалоговое окно Catalog и Schema открывается.
В списке Schema выберите схему. Нажмите OK.
Приложение Database Explorer соединяется с базой данных и таблицами базы данных отображений в панели Data Browser. Вкладка источника данных появляется справа от панели. Заголовок вкладки источника данных является именем источника данных, которое вы задали во время настройки. Вкладка источника данных содержит пустой SQL Query и панели Data Preview.
Выберите таблицы в панели Data Browser, чтобы запросить базу данных.
Закройте вкладку источника данных, чтобы закрыть SQL-запрос и соединение с базой данных.
Шаг 3. Подключение с помощью приложения Database Explorer или командной строки.
Соединитесь с Oracle Используя приложение Database Explorer
На вкладке Database Explorer, в разделе Connections, нажимают Connect и выбирают источник данных для связи.
Если вы создаете связь с аутентификацией Windows, оставляете пробел полей Username и Password в диалоговом окне связи и нажимаете Connect. В противном случае введите имя пользователя и пароль и нажмите Connect.
Диалоговое окно Catalog и Schema открывается.
В списке Schema выберите схему. Нажмите OK.
Приложение соединяет с базой данных и отображениями свои таблицы в панели Data Browser. Вкладка источника данных появляется справа от панели. Заголовок вкладки источника данных является именем источника данных, которое вы задали во время настройки. Вкладка источника данных содержит пустой SQL Query и панели Data Preview.
Выберите таблицы в панели Data Browser, чтобы запросить базу данных.
Закройте вкладку источника данных, чтобы закрыть SQL-запрос. В разделе Connections закройте соединение с базой данных путем нажатия на Close Connection.
Примечание
Если многочисленные связи открыты, закрывают соединение с базой данных по вашему выбору путем выбора соответствующего источника данных из списка Close Connection.
Соединитесь с Oracle Используя драйвер ODBC и командную строку
Чтобы соединиться с аутентификацией Windows, соединитесь с базой данных с аутентифицируемым именем источника данных ODBC и пустым именем пользователя и паролем. Например, этот код принимает, что вы соединяетесь с источником данных под названием Oracle_Auth .
Или, чтобы соединиться без аутентификации Windows, соединитесь с базой данных с именем источника данных ODBC. Например, этот код принимает, что вы соединяетесь с источником данных под названием Oracle с именем пользователя username и пароль pwd .
Шаг 1. Проверьте установку драйвера.
Драйвер ODBC обычно предварительно устанавливается на вашем компьютере. Для получения дополнительной информации об установке драйвера или поиске и устранении неисправностей установки, свяжитесь со своим администратором базы данных или обратитесь к вашей документации базы данных относительно драйверов ODBC. Для получения информации о Microsoft ® ODBC Data Source Administrator смотрите Установку драйвера.
Шаг 2. Настройте источник данных с помощью приложения Database Explorer.
Приложение Database Explorer получает доступ к Microsoft ODBC Data Source Administrator автоматически, когда вы конфигурируете источник данных ODBC. В качестве альтернативы можно получить доступ к Microsoft ODBC Data Source Administrator с помощью configureODBCDataSource функция.
Откройте приложение Database Explorer путем нажатия на вкладку Apps на MATLAB ® Панель инструментов. Затем справа от раздела Apps кликните по стреле Show more, чтобы открыть галерею Apps. Под Database Connectivity and Reporting нажмите Database Explorer. В качестве альтернативы введите databaseExplorer в командной строке.
В разделе Data Source выберите Configure Data Source> Configure ODBC data source.
В диалоговом окне ODBC Data Source Administrator вы задаете источник данных ODBC.
Совет
При подготовке источника данных ODBC можно задать пользовательское имя источника данных (DSN) или систему DSN. Пользователь DSN характерен для человека, регистрируемого в машину. Только этот человек видит источники данных, которые заданы на пользовательской вкладке DSN. Система DSN не характерна для человека, регистрируемого в машину. Любой человек, который регистрирует в машину, видит источники данных, которые заданы на системной вкладке DSN. Ваша способность настроить пользователя DSN или система, DSN зависит от базы данных и драйвера ODBC, который вы используете. Для получения дополнительной информации свяжитесь с администратором базы данных или обратитесь к документации драйвера ODBC.
Кликните по вкладке System DSN, и затем нажмите Add.
Диалоговое окно Create New Data Source открывает и отображается список установленных драйверов ODBC.
Выберите драйвер ODBC Oracle in OraClient11g_home1 .
Примечание
Имя драйвера ODBC может варьироваться.
Нажмите Finish.
В диалоговом окне Oracle ODBC Driver Configuration введите соответствующее имя для источника данных. Вы используете это имя, чтобы установить связь с вашей базой данных. Здесь, в поле Data Source Name, введите ORA как имя источника данных. В поле Description введите описание для этого источника данных, такого как Oracle database . В поле TNS Service Name введите имя своей базы данных.
Можно настроить источник данных ODBC с или без аутентификации Windows.
Чтобы установить источник данных без аутентификации Windows, введите свое имя пользователя в поле User ID. Или, чтобы установить источник данных с аутентификацией Windows, оставьте это незаполненное поле. Оставьте Application, Oracle, Workarounds и вкладки SQLServer Migration с настройками по умолчанию.
Нажмите Test Connection, чтобы протестировать связь с вашей базой данных. Диалоговое окно Driver Connect ODBC Oracle открывается. Если вы устанавливаете источник данных с аутентификацией Windows, диалоговое окно Testing Connection открывается.
Нажмите OK в диалоговом окне Oracle ODBC Driver Configuration. Диалоговое окно ODBC Data Source Administrator показывает источнику данных ODBC ORA .
После того, как вы завершаете настройку источника данных, соединяетесь с базой данных Oracle с помощью приложения Database Explorer или командной строки с нативной связью ODBC.
Указываемые параметры (драйвер ODBC для Oracle)
Параметры подключения для этого поставщика данных и драйвера ODBC одинаковы независимо от того, является ли сервер Oracle источником или назначением. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.
Чтобы подключиться к Oracle с помощью драйвера ODBC для Oracle, соберите строку подключения, используя указанные ниже параметры и их значения. Полный формат строки подключения приведен после списка параметров.
Вы можете получить помощь в построении строки подключения. Кроме того, вместо указания строки подключения вы можете предоставить существующее имя DSN (имя источника данных) или создать новое. Дополнительные сведения об этих возможностях см. в разделе Подключение к источнику данных ODBC.
Драйвер
Имя драйвера ODBC — Microsoft ODBC for Oracle.Server
Имя сервера Oracle.Uid и Pwd
Идентификатор пользователя и пароль для подключения.Примечание:
Какое имя у моего сервера Oracle?
Выполните один из следующих запросов, чтобы узнать имя сервера Oracle.
SELECT host_name FROM v$instance
SELECT sys_context('USERENV','SERVER_HOST') FROM dual
Формат строки подключения
Ниже приведен формат типичной строки подключения.
Примечание
Имя драйвера ODBC может отличаться.
Нажмите Finish.
В диалоговом окне Oracle ODBC Driver Configuration введите соответствующее имя для источника данных. Вы используете это имя, чтобы установить связь с вашей базой данных. Здесь, в поле Data Source Name, введите ORA как имя источника данных. В поле Description введите описание для этого источника данных, такого как Oracle database . В поле TNS Service Name введите имя своей базы данных.
Можно настроить источник данных ODBC с или без аутентификации Windows.
Чтобы установить источник данных без аутентификации Windows, введите свое имя пользователя в поле User ID. Или, чтобы установить источник данных с аутентификацией Windows, оставьте это незаполненное поле. Оставьте Application, Oracle, Workarounds и вкладки SQLServer Migration с настройками по умолчанию.
Нажмите Test Connection, чтобы протестировать связь с вашей базой данных. Диалоговое окно Driver Connect ODBC Oracle открывается. Если вы устанавливаете источник данных с аутентификацией Windows, диалоговое окно Testing Connection открывается.
Нажмите OK в диалоговом окне Oracle ODBC Driver Configuration. Диалоговое окно ODBC Data Source Administrator показывает источнику данных ODBC ORA .
После того, как вы завершаете настройку источника данных, соединяетесь с базой данных Oracle с помощью приложения Database Explorer или командной строки с нативной связью ODBC.
Ввод строки подключения
Введите строку подключения в поле ConnectionString либо введите имя DSN в поле Dsn на странице Выбор источника данных или Выбор назначения. После того как вы введете строку подключения, мастер проанализирует ее и отобразит отдельные свойства и их значения в списке.
Ниже показан экран, который появляется после ввода строки подключения.
Читайте также: