Подключение к oracle через odbc

Обновлено: 07.07.2024

access 97 и oracle 8.04
У меня БД на Оракле а клиентская часть на Аксесе 97. Подскажите какие запросы выполняются на.

Access->Oracle
У меня такой вопросец: можно ли из Акеса делать запросы к серверу к базе данных на Oracle? Как это.

Коннект к базе Oracle в JavaScript.
Как это можно сделать? Как это сделать лучше? Только используя JDBC через вызовы методов.

Имя источника данных - придумываете сами, запомните, что придумали, чтобы потом быть в сотсоянии найти именно этот источник в списке
Описание - примечание для себя, на случай, если таки забудете, что это за источник и зачем он вам
Пользователь - логин на сервер (пароль спросит на след. шагах)
Сервер: 172.17.25.23,1521 (хост,порт)

Остальных параметров не знаю, т.к. с оракл не знакома.

Ок, а попробуйте вместо хост,порт в графу Сервер написать SID

Добавлено через 1 минуту
Вообще, вот вам нагуглила

Спасибо! Ссылки очень полезные. Подключиться пока не получилось но путь для решения этой проблемы Вы мне подсказали правильный! Доброе утро!
В прошлом году я создавал тему про коннект Access и Oracle. В виду того, что я работаю в банке, и все разрешения для различных подключений нужно получать чуть от очень многих людей, этот вопрос был отложен на неопределённое время.
А вот теперь он снова стал актуален. На данный момент мне предоставили БД Oracle, которая находится на определенном сервере, создали пользователя. Через SQL Developer я сделал коннект к ней (рис. 1).
Потом сделал подключение через источник ODBC (рис.2), где был выбран драйвер: Oracle in OraClient 10g_home1 (рис.3).
Коннект прошел успешно, потом из БД Access, я прилинковал таблицу.
Вроде всё работает. Но так, как база уже полностью сделана в Access (все формы, запросы, VBA функции) то при переносе уже готовых таблиц в Oracle, а потом когда, я их обратно подключил в Access, у меня возникли проблемы с некоторыми функциями VBA. А конкретно в том месте где был прописан код, который обращался к таблице Access, теперь он ругается, что таблица эта доступна только для чтения. Я так понимаю, что в коде нужно теперь прописывать само подключение к этой таблице? Но я не знаю как это делать. Может кто подскажет?
Очевидная ошибка в том, что при открытии рекордсетов не прописан экземпляр БД в которой создается набор данных
Надо для строк 18, 19 записать
Остальное не совсем понятно. В частности неясно в какой базе располагаются таблицы. И если расположение БД в папке с запрещенным редактированием, то конечно таблицы будут недоступны для модификации. Это я просто ошибся, в коде и было раньше прописано
И так всё работает, когда таблицы непосредственно находятся в Access.
Потом я эти таблицы переместил в Oracle, потом сделал подключение к ним через мастер в Access и
при выполнении этого кода появляется ошибка, что таблица "ArchivOperaziyLot" доступна только для чтения.
Я пробовал прописать коннект в самом коде:
я эти таблицы переместил в Oracle, потом сделал подключение к ним через мастер в Access и
при выполнении этого кода появляется ошибка, что таблица "ArchivOperaziyLot" доступна только для чтения. Предположительно в таблице ArchivOperaziyLot нет ключевого поля. И поэтому драйвер не позволяет модификацию данных

Да, там нет ключевого поля. Мне оно там в принципе не нужно. Но, я так понимаю, что его нужно проставить. А как в Oracle создать поле типа "Счётчик", не подскажите?

Добавлено через 14 минут
mobile,
А Вы мне не подскажите, нормально ли будет работать моя БД, если с ней будут работать порядка 20 пользователей?
Я имею ввиду обращение к таблицам "Lot", "ArchivOperaziyLot" и т.д. через то подключение, которое я описал в посте выше?
Все запросы и формы, остаются в Access.
Я просто читал, что подключение через ODBC не очень хороший вариант.

По Вашему запросу ничего не найдено.

Рекомендуем сделать следующее:

  • Проверьте правильность написания ключевых слов.
  • Используйте синонимы введенных Вами ключевых слов, например “приложение” вместо “программное обеспечение”.
  • Попробуйте воспользоваться одним из популярных поисковых запросов ниже.
  • Начните новый поиск.

Oracle Instant Client ODBC Installation Notes

Installing Oracle Instant Client Basic and Basic Lite

Instant Client ODBC requires the Oracle Instant Client Basic or Basic Light package (depending on your locale requirements) also be installed. Download the desired package from OTN for your operating system and follow the installation instructions on the download page. For example, unzip the package to C:\instantclient_19_3 on Windows, unzip to /opt/oracle/instantclient_19_3 on Linux or other platforms, or use yum to install the RPM packages on Linux.

Installing Oracle Instant Client ODBC

On Linux and UNIX

1. Download Install the Instant Client Basic or Basic Light package as described above.

2. Download the Instant Client ODBC package. Unzip it in the same directory as your Basic or Basic Light package. Or, if using the RPM package on Linux, install it with yum .

3. Install the unixODBC driver manager if it is not already available. Refer to the "Recommended unixODBC Driver Manager version" section in this document for more information.

4. Execute odbc_update_ini.sh from the Instant Client directory.

5. Set any Oracle Globalization variables required for your locale. See the Oracle Database Globalization Support Guide for more information. For example on Linux you could set export NLS_LANG=JAPANESE_JAPAN.JA16EUC to work in the JA16EUC character in Japanese.

Usage: odbc_update_ini.sh <ODBCDM_Home> [<Install_Location> <Driver_Name> <DSN> <ODBCINI>]

* - Optional parameters

On Windows

  1. Install the Instant Client Basic or Basic Light package, as described above.
  2. Download the Instant Client ODBC package. Unzip it in the same directory as your Basic or Basic Light package.
  3. Execute odbc_install.exe from the Instant Client directory. If Instant Client is 11g or lower, start the command prompt with the Administrator privilege. To install with Japanese language support, execute the command odbc_install.exe JA .

Environment setup for ODBC applications

Contents of the Oracle Instant Client ODBC Package

Description Linux and UNIX Windows
Oracle ODBC driver shared library libsqora.so.XX.Y. For example libsqora.so.19.1 sqora32.dll
Installation file odbc_update_ini.sh odbc_install.exe, odbc_uninstall.exe
Oracle ODBC driver configuration dialog window (GUI) Not available sqoras32.dll, sqresus.dll, sqresja.dll
Help System help/ help/

Patching Oracle Instant Client ODBC

Note: Backup the Oracle ODBC driver shared library and other files before patching them.

Alternatively the Oracle Instant Client ODBC driver can be patched by copying the files that are listed below from a patched ORACLE_HOME:

  • ODBC driver shared library file:
    For 19c: libsqora.so.19.1
    For 18c: libsqora.so.18.1
    For 12c: libsqora.so.12.1
    For 11g: libsqora.so.11.1
  • Required additional files when using Oracle Instant Client Basic:
    For 19c: libociei.so, libclntshcore.so.19.1, libclntsh.so.19.1, libnnz19.so, libons.so
    For 18c: libociei.so, libclntshcore.so.18.1, libclntsh.so.18.1, libnnz18.so, libons.so
    For 12c: libociei.so, libclntshcore.so.12.1, libclntsh.so.12.1, libnnz12.so, libons.so
    For 11g: libclntsh.so.11.1, libociei.so, libnnz11.so
  • Required additional files when using Oracle Instant Client Basic Light:
    For 19c: libclntsh.so.19.1, libclntshcore.so.19.1, libociicus.so, libnnz19.so, libons.so
    For 18c: libclntsh.so.18.1, libclntshcore.so.18.1, libociicus.so, libnnz18.so, libons.so
    For 12c: libclntsh.so.12.1, libclntshcore.so.12.1, libociicus.so, libnnz12.so, libons.so
    For 11g: libclntsh.so.11.1, libociicus.so, libnnz11.so

On Windows Patching the Instant Client ODBC driver on Windows can be done only by manually copying the ODBC driver shared library files and supporting library files from a patched ORACLE_HOME or from an unpacked Oracle Database Bundle patch. These should be copied into the Instant Client directory. Generating an Instant Client ODBC package is not available on Windows.

The files that must be copied to the Instant Client directory:

  • ODBC driver shared library files: sqora32.dll, sqoras32.dll, sqresus.dll, sqresja.dll
  • Required additional files when using Oracle Basic Instant Client:
    For 19c: oraociei19.dll, orannzsbb19.dll, oci.dll, oraons.dll, ociw32.dll, oraociei19.sym, orannzsbb19.sym, oci.sym, ociw32.sym
    For 18c: oraociei18.dll, orannzsbb18.dll, oci.dll, oraons.dll, ociw32.dll, oraociei18.sym, orannzsbb18.sym, oci.sym, ociw32.sym
    For 12c: oraociei12.dll, orannzsbb12.dll, oci.dll, oraons.dll, ociw32.dll, oraociei12.sym, orannzsbb12.sym, oci.sym, ociw32.sym
    For 11g: oraociei11.dll, orannzsbb11.dll, oci.dll, ociw32.dll, oraociei11.sym, orannzsbb11.sym, oci.sym, ociw32.sym
  • Required additional files when using Oracle Basic Light Instant Client:
    For 19c: oraociicus19.dll, orannzsbb19.dll, oci.dll, oraons.dll, ociw32.dll, oraociicus19.sym, orannzsbb19.sym, oci.sym, ociw32.sym
    For 18c: oraociicus18.dll, orannzsbb18.dll, oci.dll, oraons.dll, ociw32.dll, oraociicus18.sym, orannzsbb18.sym, oci.sym, ociw32.sym
    For 12c: oraociicus12.dll, orannzsbb12.dll, oci.dll, oraons.dll, ociw32.dll, oraociicus12.sym, orannzsbb12.sym, oci.sym, ociw32.sym
    For 11g: oraociicus11.dll, orannzsbb11.dll, oci.dll, ociw32.dll, oraociicus11.sym, orannzsbb11.sym, oci.sym, ociw32.sym

Note: While copying from the Oracle Database Bundle patch, some of the files above may be missing. This implies that those files are unchanged and do not need to be patched.

2. Далее необходимо найти расположение файла TNSNAMES.ORA (с помощью поиска в вашей
папке, куда установлен Oracle). Может найтись два файла, выберите тот, что больше,
скорее всего в нем есть актуальная информация о подключении к базе.
И вы можете взять имя TNS из этого файла. Либо спросите у своего системного
администратора данную информацию.
Вот пример блока кода с TNS-именем "ORCLPDB" одного из моих подключений:
ORCLPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclPDB)
)
)

3. После установки компонентов Oracle: Basic Package и ODBC Package и определения
имени TNS необходимо запустить файл настройки ODBC соединения, например:
- если Excel 32x, то открыть C:\Windows\System32\odbcad32.exe
- если Excel 64x, то открыть C:\Windows\SysWOW64\odbcad32.exe
И нажать добавить.
Кстати, если вы установите оба драйвера (32х и 64х) из пункта 1, то в окне
"Create New Data Source" (создание нового источника данных), например:
для 64х Excel следует выбрать драйвер "Oracle in OraDB12Home1" (12.02.00.01)
для 32x Excel следует выбрать драйвер "Oracle in instantclient_12_2" (12.02.00.01)
И ввести необходимые данные, например для моего TNS-имени можно создать следующее:
Data Source Name = DSN_ORCLPDB (здесь пишется на ваше усмотрение на английском)
Description = D_ORCLPDB (здесь пишется на ваше усмотрение на английском)
TNS Service Name = ORCLPDB (здесь пишется имя TNS)
User (это название схемы)
Далее нажмите кнопку Test Connection, появится окно с пустым полем пароля, куда
необходимо ввести ваш пароль, привязанный к вашему User ID и нажмите OK. Должно
появится окно с уведомлением об успешном подключении "Connection successful".
Кстати, если вы используете PL/SQL Developer, то в нем при входе на форме:
Database это "TNS Service Name", Username это "User ID".

4. Далее необходимо создать пользовательскую (не системную) переменную среды:
имя переменной = TNS_ADMIN
значение переменной = здесь указывается местоположение вашего файла tnsnames.ora,
например C:\app\myu\product\12.2.0\dbhome_1\network\admin

5. Далее в файле Excel, в котором планируете использовать подключение, необходимо
перейти в среду разработки Visual Basic и в меню: Tools - References активировать
библиотеки (поставить галочки):
Microsoft ActiveX Data Objects 2.8 Library
Microsoft ActiveX Data Objects Recordset 2.8 Library
Либо можно выбрать:
Microsoft ActiveX Data Objects 6.1 Library
Microsoft ActiveX Data Objects Recordset 6.0 Library

6. Далее необходимо написать код в вашем файле с подключением к базе данных.
Но вы можете скачать уже ГОТОВЫЙ файл, в котором требуется ввести Data Source Name,
User ID и пароль к этому User ID.

Либо, откройте этот файл и посмотрите процедуру
ConnectToOracle64bit, в которой будет понятно, что делать с данными из DSN
подключения, которые вы создали в пункте 3.
Файл НЕ содержит вредоносных макросов.

This article explains how to connect to Oracle with ODBC when using Windows 10.

It covers the following topics:

  1. How to connect to Oracle (with code samples).
  2. How to setup ODBC:
  3. 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:

  1. 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:

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:

  • 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).

Читайте также: