Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ Python ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

SQL\T-SQL

FreeBSD and Nix

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Python + Oracle, cx_Oracle и instant client


Задача: подключиться к базе данных Oracle с помощью Python

Решение было опробовано по ОС WINDOWS 7 x32 и ОС WINDOWS 2012 x64.

Что нужно делать?

1. Установить клиент Oracle для Windows.
2. Установить модуль cx_Oracle.
3. Установить переменную окружения.

Клиент Oracle:

1. Скачиваем нужную Вам версию Instant client basic для Вашей платформы: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
2. Распаковываем архив.
3. Перемещаем содержимое архива например в папку c:\instantclient_10_1

cx_Oracle:

Версию cx_Oracle выбираем в соответствии версией языка Python и версией клиента Oracle здесь: http://cx-oracle.sourceforge.net/

Переменная окружения:

Свойства моего компьютера -> Дополнительные параметры системы -> Переменные среды -> Добавить данной переменной в начало наш путь к папке с клиентом и не забыть отделить ; от остальных путей.

PATH=C:\instantclient_10_1;

Как использовать:

Примеры можно найти например тут: http://www.orafaq.com/wiki/Python

Вот простой пример запроса выборки 4х столбцов, и вывод в консоль результата:

import cx_Oracle


conn=cx_Oracle.connect('login/pass@192.168.1.1/BASE.HNS')
cursor=conn.cursor()


cursor.execute('SELECT UPPER(da.APPLNAME) as APPLNAME,UPPER(da.SITENAME) as SITENAME,dl.VAPLINECFDIRECTORYNUMBER,dv.VAPCONFIGCFENTERPRISEIPADDRESS FROM dms_appliance da,dms_vaplines dl, dms_vap dv WHERE da.appltype=1 AND dl.applid=da.applid AND dl.vaplinecfdirectorynumber IS NOT NULL AND dv.vapid=da.applid')


for column_1, column_2, column_3, column_4 in cursor.fetchall():
    print(column_1, column_2, column_3, column_4)


cursor.close()
conn.close()

 


Комментарии пользователей

Оставленных комментариев: 4Добавить комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!
Дмиртий (09.09.2016 в 15:05)ответить
Михаил, здравствуйте, сделал все, как у Вас описано выше, но подключения не происходит, ошибка: DatabaseError: ORA-12170: TNS:Connect timeout occurred Не поможете разобраться, в чем дело? У меня Windows 8 x64, python 3.5. Я установил instant client 12.1.
Дмиртий (09.09.2016 в 15:09)ответить
Михаил, здравствуйте, сделал все, как у Вас описано выше, но подключения не происходит, ошибка: DatabaseError: ORA-12170: TNS:Connect timeout occurred Не поможете разобраться, в чем дело? У меня Windows 8 x64, python 3.5. Я установил instant client 12.1.
MSnake (12.09.2016 в 10:59)ответить
Доброе утро! С восьмеркой была эта проблема, бились дня 4 и снесли ее, как решить на ней проблему так и не поняли.
Дмиртий (13.09.2016 в 11:53)ответить
Доброе! жаль, что не получилось подключиться...но все равно спасибо за ответ.

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект