The 'oracle' dialect with current database version settings does not support empty inserts
up vote
0
down vote
favorite
Does anyone know what this error means? Below is class method that returns error sqlalchemy.exc.CompileError: The 'oracle' dialect with current database version settings does not support empty inserts.
Im using same classmethod in sqlserver and it works. how to bypass this in oracle using sqlalchemy orm?
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
class DbTable(object):
pass
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
mapper(DbTable, table)
DbTable.__getattribute__(DbTable, self.primary_key)
insert_rows = [k: convert_nan(v) for k, v in check_ir.items() for check_ir in data]
session = sessionmaker(bind=engine)()
session.bulk_insert_mappings(DbTable, insert_rows)
session.commit()
session.flush()
and data that im trying to insert looks like :
['coll': 10, 'col2': 'value', 'col1': 20, 'col2': 'value']
python-3.x oracle sqlalchemy
add a comment |
up vote
0
down vote
favorite
Does anyone know what this error means? Below is class method that returns error sqlalchemy.exc.CompileError: The 'oracle' dialect with current database version settings does not support empty inserts.
Im using same classmethod in sqlserver and it works. how to bypass this in oracle using sqlalchemy orm?
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
class DbTable(object):
pass
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
mapper(DbTable, table)
DbTable.__getattribute__(DbTable, self.primary_key)
insert_rows = [k: convert_nan(v) for k, v in check_ir.items() for check_ir in data]
session = sessionmaker(bind=engine)()
session.bulk_insert_mappings(DbTable, insert_rows)
session.commit()
session.flush()
and data that im trying to insert looks like :
['coll': 10, 'col2': 'value', 'col1': 20, 'col2': 'value']
python-3.x oracle sqlalchemy
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Does anyone know what this error means? Below is class method that returns error sqlalchemy.exc.CompileError: The 'oracle' dialect with current database version settings does not support empty inserts.
Im using same classmethod in sqlserver and it works. how to bypass this in oracle using sqlalchemy orm?
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
class DbTable(object):
pass
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
mapper(DbTable, table)
DbTable.__getattribute__(DbTable, self.primary_key)
insert_rows = [k: convert_nan(v) for k, v in check_ir.items() for check_ir in data]
session = sessionmaker(bind=engine)()
session.bulk_insert_mappings(DbTable, insert_rows)
session.commit()
session.flush()
and data that im trying to insert looks like :
['coll': 10, 'col2': 'value', 'col1': 20, 'col2': 'value']
python-3.x oracle sqlalchemy
Does anyone know what this error means? Below is class method that returns error sqlalchemy.exc.CompileError: The 'oracle' dialect with current database version settings does not support empty inserts.
Im using same classmethod in sqlserver and it works. how to bypass this in oracle using sqlalchemy orm?
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
class DbTable(object):
pass
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
mapper(DbTable, table)
DbTable.__getattribute__(DbTable, self.primary_key)
insert_rows = [k: convert_nan(v) for k, v in check_ir.items() for check_ir in data]
session = sessionmaker(bind=engine)()
session.bulk_insert_mappings(DbTable, insert_rows)
session.commit()
session.flush()
and data that im trying to insert looks like :
['coll': 10, 'col2': 'value', 'col1': 20, 'col2': 'value']
python-3.x oracle sqlalchemy
python-3.x oracle sqlalchemy
edited Nov 10 at 16:10
asked Nov 10 at 16:01
PythonMan
1479
1479
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
I found workaround for this problem so if anyone stumbleupon same issue here is the code:
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
insert_rows = [k.lower(): convert_nan(v) for k, v in check_ir.items() for check_ir in data]
with engine.begin() as connection:
for insert_row in insert_rows:
connection.execute(table.insert().values(**insert_row))
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
I found workaround for this problem so if anyone stumbleupon same issue here is the code:
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
insert_rows = [k.lower(): convert_nan(v) for k, v in check_ir.items() for check_ir in data]
with engine.begin() as connection:
for insert_row in insert_rows:
connection.execute(table.insert().values(**insert_row))
add a comment |
up vote
1
down vote
I found workaround for this problem so if anyone stumbleupon same issue here is the code:
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
insert_rows = [k.lower(): convert_nan(v) for k, v in check_ir.items() for check_ir in data]
with engine.begin() as connection:
for insert_row in insert_rows:
connection.execute(table.insert().values(**insert_row))
add a comment |
up vote
1
down vote
up vote
1
down vote
I found workaround for this problem so if anyone stumbleupon same issue here is the code:
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
insert_rows = [k.lower(): convert_nan(v) for k, v in check_ir.items() for check_ir in data]
with engine.begin() as connection:
for insert_row in insert_rows:
connection.execute(table.insert().values(**insert_row))
I found workaround for this problem so if anyone stumbleupon same issue here is the code:
def insertr(self, tablename, data, schema=None):
def convert_nan(v):
if pd.isnull(v) or pd.isna(v):
v = None
return v
engine = self.engine
metadata = MetaData(bind=engine)
table = Table(tablename, metadata, autoload=True, quote=True, schema=schema)
insert_rows = [k.lower(): convert_nan(v) for k, v in check_ir.items() for check_ir in data]
with engine.begin() as connection:
for insert_row in insert_rows:
connection.execute(table.insert().values(**insert_row))
answered Nov 12 at 7:09
PythonMan
1479
1479
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53240740%2fthe-oracle-dialect-with-current-database-version-settings-does-not-support-emp%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown