-
Notifications
You must be signed in to change notification settings - Fork 96
Closed
Labels
Description
I have the following table
create table oracledbtest(testint integer);and I've inserted one record via
insert into oracledbtest values (1);With this, the following Python script
import oracledb
for fetch_lobs in (False, True):
oracledb.defaults.fetch_lobs = fetch_lobs
db = oracledb.connect("user/pwd@db", config_dir='/Users/walter/oracle/instantclient_12_2/network/admin')
c = db.cursor()
data = c.execute("select * from oracledbtest").fetchall()
print(f"{fetch_lobs=}: {data=}")outputs
fetch_lobs=False: data=[(1.0,)]
fetch_lobs=True: data=[(1,)]
i.e. with oracledb.defaults.fetch_lobs = False integers are fetched as floats, but with oracledb.defaults.fetch_lobs = True they are fetched as ints.
IMHO they should always be fetched as ints.
Versions from
import sys, platform, oracledb
print(f"{platform.platform()=}")
print(f"{sys.maxsize > 2**32=}")
print(f"{platform.python_version()=}")
print(f"{oracledb.__version__=}")are
platform.platform()='macOS-12.4-x86_64-i386-64bit'
sys.maxsize > 2**32=True
platform.python_version()='3.10.4'
oracledb.__version__='1.0.0'
The database is an Oracle XE 21.0.0.0.0