On 8/4/15 1:41 PM, Abhishek Sharma wrote:
is this followings two instructions compulsory  while defining new type?
m.drop_all(e)
m.create_all(e)

no that is just part of the demonstration script.



this instructions are not feasible , because DB team already defined schema and normal user can not drop and create table.
yup, that is a given


On Tue, Aug 4, 2015 at 8:59 PM, Mike Bayer <[email protected] <mailto:[email protected]>> wrote:



    On 8/4/15 7:41 AM, Abhishek Sharma wrote:
    in case lot of overhead will be there so it is better to use that
    column label only
    well it doesn't work anyway because data from a CLOB is not in
    cx_oracle's world a "String", it's a LOB. The CLOB / NCLOB types
    for cx_oracle are organized in their own way where only NCLOB
    actually has unicode handling capability, regardless of the
    coerce_to_unicode or convert_unicode flags; CLOB does not.   So
    either use NCLOB, or build out your own convert unicode, here is a
    demo:

    from sqlalchemy import create_engine, CLOB, Table, MetaData,
    Column, select, TypeDecorator
    from sqlalchemy.dialects.oracle import NCLOB

    e = create_engine("oracle+cx_oracle://scott:tiger@xe", echo='debug')

    class ForceUnicodeClob(TypeDecorator):
        impl = CLOB
        def process_result_value(self, value, dialect):
            if value is not None:
                value = value.decode('utf-8')
            return value

    m = MetaData()
    t = Table('test', m, Column('data1', NCLOB()), Column('data2',
    ForceUnicodeClob()))

    m.drop_all(e)
    m.create_all(e)

    e.execute(t.insert(), data1=u'unicode', data2=u'unicode')

    result = e.execute(select([t.c.data1, t.c.data2]))
    value1, value2 = result.fetchone()
    print repr(value1), repr(value2)








    On Tue, Aug 4, 2015 at 6:15 AM, Mike Bayer
    <[email protected] <mailto:[email protected]>> wrote:



        On 8/4/15 5:47 AM, Abhishek Sharma wrote:
        applying convert_unicode to CLOB type does not have any
        effect. Still I am getting str type object from sqlalchemy
        for CLOB type column

        have you tried the coerce_to_unicode flag on create_engine() ?






        On Mon, Aug 3, 2015 at 1:27 PM, Mike Bayer
        <[email protected] <mailto:[email protected]>>
        wrote:



            On 8/3/15 1:04 PM, Abhishek Sharma wrote:
            what about CLOB type?  Unicode only handles String
            type. Do i need to use convert_unicode there?

            if your CLOB expects non-ascii characters then yes.

            though on Oracle I thought you really need to be using
            NCLOB for a col that stores unicode.




            On Mon, Aug 3, 2015 at 6:56 PM, Mike Bayer
            <[email protected]
            <mailto:[email protected]>> wrote:



                On 8/1/15 12:12 PM, Abhishek Sharma wrote:
                Thanks for help. But still i have confusion over
                encoding and decoding procedure which will take
                place before retrieving and storing the results in DB.

                In case if i am not using convert_unicode option
                and data type is String so python process will
                give str object to sqlalchemy at the time of
                insert record in DB using ORM. So will alchemy
                store that object in encoded form?. So at the time
                of retrieving ORM will give str object for String
                type column to python and python decode that
                object with default encoding?

                Can i simply use Unicode Data type for columns
                where there might be chance of using non ascii data?

                if you know that your unicode data is on specific
                columns then yes, the Unicode type plugs in an
                encoder/decoder for those backends that require it.





                On Thu, Jul 30, 2015 at 2:55 AM, Mike Bayer
                <[email protected]
                <mailto:[email protected]>> wrote:



                    On 7/29/15 2:23 PM, Abhishek Sharma wrote:
                    We are using sqlalchemy version 0.7, python
                    2.7 and oracle Database.
                    We have ASCII as default python encoding and
                    DB have ISO-8052 encoding. Our DB tables
                    contains some of characters which are out of
                    ASCII range. So when we are running query on
                    those tables we are getting Unicode Decode
                    error saying "ASCII" codec can not decode.
                    This error we are getting without accessing
                    model attributes.

                    How i can handle these errors without
                    changing python default encoding.

                    Oracle's client encoding is controlled by the
                    NLS_LANG environment variable. That has to be
                    set correctly first off (see
                    
http://www.oracle.com/technetwork/products/globalization/nls-lang-099431.html).
                    If you have non-ASCII strings encoded in
                    datatypes that are explicitly not of type
                    NVARCHAR or NCLOB , or you're relying on a lot
                    of raw SQL, and you are still getting errors,
                    I would set the "coerce_to_unicode=True" flag
                    on create_engine(), which allows cx_Oracle's
                    unicode facilities to take place fully for all
                    string data being returned, at the expense of
                    some performance. See
                    
http://docs.sqlalchemy.org/en/rel_1_0/dialects/oracle.html#unicode
                    for background.



-- 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
                    [email protected]
                    <mailto:[email protected]>.
                    To post to this group, send email to
                    [email protected]
                    <mailto:[email protected]>.
                    Visit this group at
                    http://groups.google.com/group/sqlalchemy.
                    For more options, visit
                    https://groups.google.com/d/optout.

-- You received this message because you are
                    subscribed to a topic in the Google Groups
                    "sqlalchemy" group.
                    To unsubscribe from this topic, visit
                    
https://groups.google.com/d/topic/sqlalchemy/eThubIMnL4o/unsubscribe.
                    To unsubscribe from this group and all its
                    topics, send an email to
                    [email protected]
                    <mailto:[email protected]>.
                    To post to this group, send email to
                    [email protected]
                    <mailto:[email protected]>.
                    Visit this group at
                    http://groups.google.com/group/sqlalchemy.
                    For more options, visit
                    https://groups.google.com/d/optout.


-- 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
                [email protected]
                <mailto:[email protected]>.
                To post to this group, send email to
                [email protected]
                <mailto:[email protected]>.
                Visit this group at
                http://groups.google.com/group/sqlalchemy.
                For more options, visit
                https://groups.google.com/d/optout.

-- You received this message because you are
                subscribed to a topic in the Google Groups
                "sqlalchemy" group.
                To unsubscribe from this topic, visit
                
https://groups.google.com/d/topic/sqlalchemy/eThubIMnL4o/unsubscribe.
                To unsubscribe from this group and all its topics,
                send an email to
                [email protected]
                <mailto:[email protected]>.
                To post to this group, send email to
                [email protected]
                <mailto:[email protected]>.
                Visit this group at
                http://groups.google.com/group/sqlalchemy.
                For more options, visit
                https://groups.google.com/d/optout.


-- 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
            [email protected]
            <mailto:[email protected]>.
            To post to this group, send email to
            [email protected]
            <mailto:[email protected]>.
            Visit this group at
            http://groups.google.com/group/sqlalchemy.
            For more options, visit https://groups.google.com/d/optout.

-- You received this message because you are subscribed to
            a topic in the Google Groups "sqlalchemy" group.
            To unsubscribe from this topic, visit
            
https://groups.google.com/d/topic/sqlalchemy/eThubIMnL4o/unsubscribe.
            To unsubscribe from this group and all its topics, send
            an email to [email protected]
            <mailto:[email protected]>.
            To post to this group, send email to
            [email protected]
            <mailto:[email protected]>.
            Visit this group at
            http://groups.google.com/group/sqlalchemy.
            For more options, visit https://groups.google.com/d/optout.


-- 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
        [email protected]
        <mailto:[email protected]>.
        To post to this group, send email to
        [email protected]
        <mailto:[email protected]>.
        Visit this group at http://groups.google.com/group/sqlalchemy.
        For more options, visit https://groups.google.com/d/optout.

-- You received this message because you are subscribed to a
        topic in the Google Groups "sqlalchemy" group.
        To unsubscribe from this topic, visit
        https://groups.google.com/d/topic/sqlalchemy/eThubIMnL4o/unsubscribe.
        To unsubscribe from this group and all its topics, send an
        email to [email protected]
        <mailto:[email protected]>.
        To post to this group, send email to
        [email protected] <mailto:[email protected]>.
        Visit this group at http://groups.google.com/group/sqlalchemy.
        For more options, visit https://groups.google.com/d/optout.


-- 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 [email protected]
    <mailto:[email protected]>.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>.
    Visit this group at http://groups.google.com/group/sqlalchemy.
    For more options, visit https://groups.google.com/d/optout.

-- You received this message because you are subscribed to a topic in
    the Google Groups "sqlalchemy" group.
    To unsubscribe from this topic, visit
    https://groups.google.com/d/topic/sqlalchemy/eThubIMnL4o/unsubscribe.
    To unsubscribe from this group and all its topics, send an email
    to [email protected]
    <mailto:[email protected]>.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>.
    Visit this group at http://groups.google.com/group/sqlalchemy.
    For more options, visit https://groups.google.com/d/optout.


--
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 [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to