db2i insert issue for huge json data with sqlalchemy session

50 views
Skip to first unread message

Siddhesh Naik

unread,
Sep 18, 2019, 4:10:02 AM9/18/19
to ibm_db
Hi


I am trying in huge json data into the table.My column type is CLOB.  For that I am using ibm_db_sa+as400 dialect. While inserting data into table, I got following error

pyodbc.DataError: ('22018', '[22018] [IBM][System i Access ODBC Driver]Column 3: CWBNL0107 - Converted 13123 bytes, 6561 errors found beginning at offset 0 (scp=1202 tcp=37 siso=1 pad=0 sl=13123 tl=26246) (30200) (SQLPutData)')

My code snipped is 
 Note: Json data is huge. So instead of placing that into the code snippet , I am attaching that as a txt file. Just use that data while regenerating the issue.(File Name:json_data.txt)

URL = "ibm_db_sa+pyodbc400://user:password@host/Db?driver=iSeries Access ODBC Driver"

engine
= create_engine(URL, poolclass=QueuePool, echo=True)
meta
= MetaData(bind=engine, schema="MYTEST")
db_session
= sessionmaker(bind=engine)
model
= declarative_base(metadata=meta)

class Client(model):
    __tablename__
= 'client'
    id
= Column("id", Integer, nullable=False, primary_key=True)
    name
= Column("name", String(128), nullable=True)
    client_address
= Column("client_address", Text)


def add_client(client_details):
    session
= db_session()
    client
= Client(**client_details)
    session
.add(client)
    session
.commit()
   
return True

meta
.create_all(engine)
client_data
= {"id": 3, "name": "text", "client_address": json.dumps(json_data)}
add_client
(client_data)

I got following error:
"""2019-09-18 12:29:26,409 INFO sqlalchemy.engine.base.Engine SELECT CURRENT_SCHEMA FROM SYSIBM.SYSDUMMY1
2019-09-18 12:29:26,410 INFO sqlalchemy.engine.base.Engine ()
2019-09-18 12:29:27,266 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1 FROM SYSIBM.SYSDUMMY1
2019-09-18 12:29:27,267 INFO sqlalchemy.engine.base.Engine ()
2019-09-18 12:29:27,900 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS VARGRAPHIC(60)) AS anon_1 FROM SYSIBM.SYSDUMMY1
2019-09-18 12:29:27,900 INFO sqlalchemy.engine.base.Engine ()
2019-09-18 12:29:28,751 INFO sqlalchemy.engine.base.Engine SELECT "
QSYS2"."SYSTABLES"."TABLE_SCHEMA", "QSYS2"."SYSTABLES"."TABLE_NAME", "QSYS2"."SYSTABLES"."TABLE_TYPE"
FROM "
QSYS2"."SYSTABLES"
WHERE "
QSYS2"."SYSTABLES"."TABLE_SCHEMA" = ? AND "QSYS2"."SYSTABLES"."TABLE_NAME" = ?
2019-09-18 12:29:28,751 INFO sqlalchemy.engine.base.Engine ('EDCSERVICE', 'CLIENT')
2019-09-18 12:29:29,185 INFO sqlalchemy.engine.base.Engine
CREATE TABLE "
EDCSERVICE".client (
        id INT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
        name VARCHAR(128),
        client_address CLOB,
        PRIMARY KEY (id)
)


2019-09-18 12:29:29,186 INFO sqlalchemy.engine.base.Engine ()
2019-09-18 12:29:29,571 INFO sqlalchemy.engine.base.Engine COMMIT
2019-09-18 12:29:33,715 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2019-09-18 12:29:33,726 INFO sqlalchemy.engine.base.Engine INSERT INTO "
EDCSERVICE".client (id, name, client_address) VALUES (?, ?, ?)
2019-09-18 12:29:33,727 INFO sqlalchemy.engine.base.Engine (3, 'text', '{"
unique_identifier_keys": ["SHKCOO", "SHDOCO", "SHDCTO"], "auto_id": 5, "business_object_name": "Purchase Orders", "dragged_tbl_list_with_its_type": ... (14448 characters truncated) ... c8508e3-e8fc-415b-b597-cca70733fb8f", "magnet": "circle", "id": "625fb015-d9c0-4ea0-b6bd-cbb568c5c6f7"}}]}, "from_repo": true, "client_id": "785837"}')
2019-09-18 12:29:34,169 INFO sqlalchemy.engine.base.Engine ROLLBACK
Traceback (most recent call last):
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
    cursor, statement, parameters, context
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
    cursor.execute(statement, parameters)
pyodbc.DataError: ('
22018', '[22018] [IBM][System i Access ODBC Driver]Column 3: CWBNL0107 - Converted 13123 bytes, 6561 errors found beginning at offset 0 (scp=1202 tcp=37 siso=1 pad=0 sl=13123 tl=26246) (30200) (SQLPutData)')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/mahesh/db2_case_study.py", line 472, in <module>
    add_client(client_data)
  File "/home/mahesh/db2_case_study.py", line 455, in add_client
    session.commit()
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 1027, in commit
    self.transaction.commit()
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 494, in commit
    self._prepare_impl()
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 473, in _prepare_impl
    self.session.flush()
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2459, in flush
    self._flush(objects)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2597, in _flush
    transaction.rollback(_capture_exception=True)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 153, in reraise
    raise value
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2557, in _flush
    flush_context.execute()
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/unitofwork.py", line 589, in execute
    uow,
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/persistence.py", line 245, in save_obj
    insert,
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/orm/persistence.py", line 1084, in _emit_insert_statements
    c = cached_connections[connection].execute(statement, multiparams)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 988, in execute
    return meth(self, multiparams, params)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
    distilled_params,
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
    e, statement, parameters, cursor, context
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
    cursor, statement, parameters, context
  File "/home/mahesh/ENV/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.DataError: (pyodbc.DataError) ('
22018', '[22018] [IBM][System i Access ODBC Driver]Column 3: CWBNL0107 - Converted 13123 bytes, 6561 errors found beginning at offset 0 (scp=1202 tcp=37 siso=1 pad=0 sl=13123 tl=26246) (30200) (SQLPutData)')
[SQL: INSERT INTO "EDCSERVICE".client (id, name, client_address) VALUES (?, ?, ?)]
[parameters: (3, '
text', '{"unique_identifier_keys": ["SHKCOO", "SHDOCO", "SHDCTO"], "auto_id": 5, "business_object_name": "Purchase Orders", "dragged_tbl_list_with_its_type": ... (14448 characters truncated) ... c8508e3-e8fc-415b-b597-cca70733fb8f", "magnet": "circle", "id": "625fb015-d9c0-4ea0-b6bd-cbb568c5c6f7"}}]}, "from_repo": true, "client_id": "785837"}')]
(Background on this error at: http://sqlalche.me/e/9h9h)"""


Please help
json_data.txt
Reply all
Reply to author
Forward
0 new messages