"Oracle" изменить набор сеансов "через flask -sqlalchemy и cx- oracle" - PullRequest
1 голос
/ 13 января 2020

как я могу установить соединение с базой данных oracle, используя flask -sqlalchemy и cx- oracle, отправив эти параметры:

alter session set nls_comp=linguistic;
alter session set nls_sort=Latin_AI;

Для того, чтобы можно было выполнять запросы и сортировки, которые не различают guish, например, между "Хосе" и "Хосе"

Вот как я обычно делаю соединение:

import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config

def create_app(config_name=(os.getenv('FLASK_CONFIG') or 'default')):
    app = Flask(__name__)
    app.config.from_object(config[config_name])

db.init_app(app)

from commons import commons_bp
from admin import admin_bp
from inventario import inventario_bp
from incidencias import incidencias_bp
from inconformidades import inconformidades_bp

with app.app_context():

    app.register_blueprint(commons_bp)
    app.register_blueprint(admin_bp)
    app.register_blueprint(inventario_bp)
    app.register_blueprint(incidencias_bp)
    app.register_blueprint(inconformidades_bp)

return app

и конфигурацию:

class DevelopmentConfig(Config):
    TESTING = True
    DEBUG = True
    SQLALCHEMY_ECHO = os.environ.get('SQLALCHEMY_ECHO') or False
    SQLALCHEMY_POOL_SIZE = None
    SQLALCHEMY_POOL_TIMEOUT = None
    SQLALCHEMY_BINDS = {
        'adminapps': 'oracle://ADMINAPPS:ADMINAPPS@SERVIDOR53/ENTECO',
        'incidencias': 'oracle://INCIDENCIAS:INCIDENCIAS@SERVIDOR53/ENTECO',
        'incidencias': 'oracle://INCIDENCIAS:INCIDENCIAS@SERVIDOR53/ENTECO',
        'inventario': 'oracle://INVENTARIO:INVENTARIO@SERVIDOR53/ENTECO',
        'inconformidades': 'oracle://INCONFORMIDADES:INCONFORMIDADES@SERVIDOR53/ENTECO',
        'documentacion': 'oracle://DOCUMENTACION:DOCUMENTACION@SERVIDOR53/ENTECO',
        'auditoria': 'oracle://AUDITORIA:AUDITORIA@SERVIDOR53/ENTECO',
        'navision': 'mssql+pyodbc://DB:DB.2020@SERVIDOR52',
    }

Я пробовал среди прочего:

'adminapps': ['oracle://ADMINAPPS:ADMINAPPS@SERVIDOR53/ENTECO', 'alter session set "nls_comp"="linguistic"', 'alter session set "nls_sort"="Latin_AI"'],

Но я не добился успеха, я не могу понять, как это сделать, спасибо за ваши ответы !

...