So I tried following along with this.

1) created a file called **

In it I placed this:

from sqlalchemy.sql import expression
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.types import String

class stripctrl(expression.FunctionElement):
    type = String()
    name = 'stripctrl'

def stripctrl_default(element, compiler, **kw):

    args = list(element.clauses)
    return "%s" % (compiler
                   .replace("\t", "")
                   .replace("\n", "")
                   .replace("\r", ""))

2) Imported class into my main code..

from custfunc import stripctrl
print(session.query( stripctrl(Jobdtl.jobdtl_cmd) ).first()

I think that's right

On Friday, 9 February 2018 20:05:59 UTC, Jonathan Vanasco wrote:
> I should have explained something above better...
> The result I assumed you wanted to achieve is "creating SQL that will 
> handle data transformations".  That would allow you to write concise python 
> that will compiled into SQL which will be evaluated on the database 
> server.  You could also use other approaches that transform data in python 
> before hitting the database server.
> IMHO, using a custom compiler approach is easier than trying to do 
> something with `sqlalchemy.func` because it gives you more room to 
> customize how the sql compiles under different databases.

SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See for a full description.
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 post to this group, send email to
Visit this group at
For more options, visit

Reply via email to