Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 19, 2012 11:22:05

grok
От:
Зарегистрирован: 2010-09-09
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

Доброго времени суток, уважаемые форумчане.

Есть необходимость выбрать схему БД при коннекте (или же при выборе данных) к БД Oracle. Но вот где в параметрах подключения указать ее, я не нашел. Буду рад за любую помощь в этом вопросе.
В мануале написано использовать следующие параметры:

cx_Oracle.connect([user, password, dsn, mode, handle, pool, threaded, twophase, events, cclass, purity, newpassword])
Собственно, с первыми тремя все ясно, а вот с остальными… В общем прошу вашей помощи.
Очень интересное дополнение! В объекте Connection Object написано следующее:
Connection.current_schema
This read-write attribute sets the current schema attribute for the session.
Note This attribute is an extension to the DB API definition.
Т.е. есть возможность задавать параметры чтение/запись для текущей схемы БД. А вот как ее выбрать?
Спасибо.



Офлайн

#2 Янв. 20, 2012 10:58:28

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

По-моему имеется ввиду, что этот атрибут и задает текущую схему и его (атрибут, а не схему) можно читать и писать (т.е. он не read-only).



Офлайн

#3 Янв. 20, 2012 11:08:52

grok
От:
Зарегистрирован: 2010-09-09
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

Soteric
По-моему имеется ввиду, что этот атрибут и задает текущую схему и его (атрибут, а не схему) можно читать и писать (т.е. он не read-only).
Задать (выбрать) схему при помощи Connection.current_schema нет возможности, т.к. это объект ‘str’.



Офлайн

#4 Янв. 20, 2012 12:13:30

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

Ну и что? :) Вот здесь как-то работает: http://stackoverflow.com/questions/2012035/changing-schema-using-cx-oracle



Офлайн

#5 Янв. 23, 2012 02:12:43

grok
От:
Зарегистрирован: 2010-09-09
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

Soteric
Ну и что? :) Вот здесь как-то работает: http://stackoverflow.com/questions/2012035/changing-schema-using-cx-oracle
Спасибо, за ссылку. =) Работает )



Офлайн

#6 Янв. 23, 2012 21:15:54

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

Схема = Логин. Чем так плохо?

И что делает connection.current_schema('HR')?



Офлайн

#7 Янв. 24, 2012 02:25:41

grok
От:
Зарегистрирован: 2010-09-09
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

n2b
И что делает connection.current_schema('HR')?
>>> import cx_Oracle
>>> c = cx_Oracle.Connection('LOGIN', 'PASSWORD', 'DB')
>>> c.current_schema('MY_SCHEMA')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
n2b
Схема = Логин. Чем так плохо?
Не понял Вас. Что Вы имели ввиду?
Если вот это:
>>> c.current_schema = 'MY_SCHEMA'
тогда, если Вы пройдете по вышеупомянутой ссылке от Soteric, там этот код найдете.
Т.е. по сабжу вопрос решен =)



Офлайн

#8 Янв. 24, 2012 12:51:47

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

grok
n2b
И что делает connection.current_schema('HR')?
>>> import cx_Oracle
>>> c = cx_Oracle.Connection('LOGIN', 'PASSWORD', 'DB')
>>> c.current_schema('MY_SCHEMA')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
n2b
Схема = Логин. Чем так плохо?
Не понял Вас. Что Вы имели ввиду?
Если вот это:
>>> c.current_schema = 'MY_SCHEMA'
тогда, если Вы пройдете по вышеупомянутой ссылке от Soteric, там этот код найдете.
Т.е. по сабжу вопрос решен =)
>>> c = cx_Oracle.Connection('LOGIN', ‘PASSWORD’, ‘DB’)
>>> c.current_schema('LOGIN')



Офлайн

#9 Янв. 25, 2012 02:10:44

grok
От:
Зарегистрирован: 2010-09-09
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

n2b
>>> c = cx_Oracle.Connection('LOGIN', ‘PASSWORD’, ‘DB’)
>>> c.current_schema('LOGIN')
Простите за мое любопытство, но Вы смотрели на мой последний комментарий (#7)?
current_schema это не метод, а атрибут данных, в данном случае это ‘str’.
Соответственно, код, который Вы указали, приведет к исключению TypeError.



Офлайн

#10 Фев. 24, 2012 09:55:35

mid.tier
От:
Зарегистрирован: 2012-02-24
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

Выбор схемы БД при подключении (или выборе данных) в cx_Oracle

Мне приходилось пользоваться таким способом - выполнением:
<code>alter session set current_schema=имя</code>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version