Hi,

I am getting this error when trying to do query() and CreateTable() with 
XML data type on db2 database. (Using ibm_db_sa)

Any suggestions how to resolve this?

from sqlalchemy import create_engine
from sqlalchemy import MetaData
from sqlalchemy import Table

from sqlalchemy.schema import CreateTable
from sqlalchemy.orm import sessionmaker

db2_engine = create_engine('ibm_db_sa://user:pass@server:50001/DBNAME')

meta = MetaData(bind=db2_engine, schema='udbadm')

table1 = Table('table1', meta, autoload=True)

Session = sessionmaker(bind=db2_engine)
session = Session()

res = session.query(table1).first()

print(res)

# Similar issue with CreateTable:
# print(CreateTable(table1))



Traceback (most recent call last):
  File "defect_rep1.py", line 14, in <module>
    print(CreateTable(table1))
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\elements.py", 
line 506, in __str__
    return unicode(self.compile()).encode('ascii', 'backslashreplace')
  File "<string>", line 1, in <lambda>
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\elements.py", 
line 494, in compile
    return self._compiler(dialect, bind=bind, **kw)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\ddl.py", 
line 26, in _compiler
    return dialect.ddl_compiler(dialect, self, **kw)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\compiler.py", 
line 190, in __init__
    self.string = self.process(self.statement, **compile_kwargs)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\compiler.py", 
line 213, in process
    return obj._compiler_dispatch(self, **kwargs)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\visitors.py", 
line 81, in _compiler_dispatch
    return meth(self, **kw)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\compiler.py", 
line 2153, in visit_create_table
    (table.description, column.name, ce.args[0])
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\util\compat.py", 
line 199, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\compiler.py", 
line 2142, in visit_create_table
    and not first_pk)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\compiler.py", 
line 213, in process
    return obj._compiler_dispatch(self, **kwargs)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\visitors.py", 
line 81, in _compiler_dispatch
    return meth(self, **kw)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\compiler.py", 
line 2173, in visit_create_column
    first_pk=first_pk
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\compiler.py", 
line 2314, in get_column_specification
    column.type, type_expression=column)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\compiler.py", 
line 261, in process
    return type_._compiler_dispatch(self, **kw)
  File 
"C:\dev\test_ibm_db_sa\venv27\lib\site-packages\sqlalchemy\sql\visitors.py", 
line 79, in _compiler_dispatch
    raise exc.UnsupportedCompilationError(visitor, cls)
sqlalchemy.exc.CompileError: (in table 'table1', column 'text_xml'): 
Compiler <sqlalchemy.sql.compiler.GenericTypeCompiler object at 0x03792BB0> 
can't render element of type <class 'ibm_db_sa.base.XML'>


This is how the table is setup in DB2:
CREATE TABLE UDBADM.TABLE1
(
    ID_TEST                 CHARACTER(36) NOT NULL,
    TEXT_XML                XML
    PRIMARY KEY (ID_TEST)
);


Thanks,
SL

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to