DB2i - Getting error "[IBM][System i Access ODBC Driver]Column 1: CWBNL0107 - Converted 38 bytes, 19 errors found beginning at offset 0"

299 views
Skip to first unread message

Siddhesh Naik

unread,
Sep 11, 2019, 1:56:58 AM9/11/19
to ibm_db
Hi,

I am trying to insert data into the table which has column datatype VARGRAPHIC in DB2i. While inserting data, I got following error.

pyodbc.DataError: ('22018', '[22018] [IBM][System i Access ODBC Driver]Column 1: CWBNL0107 - Converted 38 bytes, 19 errors found beginning at offset 0 (scp=1202 tcp=835 siso=0 pad=0 sl=38 tl=382) (30200) (SQLExecDirectW)')

This is my code snippet

from sqlalchemy import *
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import config
import json
from ibm_db_sa.base import VARGRAPHIC


URL
= "ibm_db_sa+pyodbc400://{user}:{password}@{host}:{port}/{database}?driver=iSeries Access ODBC Driver"

engine
= create_engine(URL, poolclass=config.POOL_CLASS, echo=True)
meta
= MetaData(bind=engine, schema="edcservice")
db_session
= sessionmaker(bind=engine)
model
= declarative_base(metadata=meta)


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

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": "start:12398345dfhgu", "name": "text"}
add_client
(client_data)


SQL alchemy log is below:
2019-09-11 11:13:08,740 INFO sqlalchemy.engine.base.Engine SELECT CURRENT_SCHEMA FROM SYSIBM.SYSDUMMY1
2019-09-11 11:13:08,741 INFO sqlalchemy.engine.base.Engine ()
2019-09-11 11:13:09,569 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1 FROM SYSIBM.SYSDUMMY1
2019-09-11 11:13:09,570 INFO sqlalchemy.engine.base.Engine ()
2019-09-11 11:13:10,173 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS VARGRAPHIC(60)) AS anon_1 FROM SYSIBM.SYSDUMMY1
2019-09-11 11:13:10,173 INFO sqlalchemy.engine.base.Engine ()
2019-09-11 11:13:10,986 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-11 11:13:10,986 INFO sqlalchemy.engine.base.Engine ('EDCSERVICE', 'CLIENT')
2019-09-11 11:13:11,408 INFO sqlalchemy.engine.base.Engine
CREATE TABLE edcservice
.client (
        id VARGRAPHIC
(191) NOT NULL,
        name VARCHAR
(128),
        PRIMARY KEY
(id)
)


2019-09-11 11:13:11,409 INFO sqlalchemy.engine.base.Engine ()
2019-09-11 11:13:11,749 INFO sqlalchemy.engine.base.Engine COMMIT
2019-09-11 11:13:14,258 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2019-09-11 11:13:14,265 INFO sqlalchemy.engine.base.Engine INSERT INTO edcservice.client (id, name) VALUES (?, ?)
2019-09-11 11:13:14,266 INFO sqlalchemy.engine.base.Engine ('start:12398345dfhgu', 'text')
2019-09-11 11:13:14,543 INFO sqlalchemy.engine.base.Engine ROLLBACK
Traceback (most recent call last):
 
File "/home/mahesh/ENV/run_datasource/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
    cursor
, statement, parameters, context
 
File "/home/mahesh/ENV/run_datasource/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 1: CWBNL0107 - Converted 38 bytes, 19 errors found beginning at offset 0 (scp=1202 tcp=835 siso=0 pad=0 sl=38 tl=382) (30200) (SQLExecDirectW)')


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