Я пытаюсь сделать запрос из базы данных через 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)