ошибочные результаты при попытке прочитать значение из базы данных с использованием sqlalchemy - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь сделать запрос из базы данных через python, используя cx_oracle и sqlalchemy. Мне кажется, что cx_oracle дает правильные результаты, а sql_alchemy дает ошибочные результаты.

Фактическое значение в базе данных: 3 360 000 000 При использовании sqlalchemy: -934 967 296 при использованииcx_oracle: 3 360 000 000

Я хочу использовать sqlalachemy.Можете ли вы сказать мне, что не так с моим кодом.Я думаю, что это может быть ошибка переполнения.

Код cx_oracle

class DatabaseConnection:
    def __init__(self, ip, port, SID, user_name, password):
        self.ip = ip  # ip address of the host
        self.port = port  # port of the host
        self.SID = SID  # SID
        self.user_name = user_name  # user name of the database
        self.password = password  # password of the database

    # function to connect to the database
    def connect(self):
        dsn_tns = cx_Oracle.makedsn(self.ip, self.port, self.SID)
        db = cx_Oracle.connect(self.user_name, self.password, dsn_tns)
        return db

    database = DatabaseConnection(host, port, SID, user_name, password)
    db = database.connect()
    sql_bp = "some sql query"
    bp1 = pd.read_sql(sql_bp, db)

Код sqlalchemy:

    engine_query = 

    "oracle+cx_oracle://"+user_name+":"+password+"@"+host+":"+port+"/"+SID
    engine = create_engine(engine_query)
    Session = sessionmaker(bind=engine)
    session = Session()
    bp = pd.read_sql(sql_bp, engine)
...