You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-cs@ibatis.apache.org by Chen Jin <cj...@helpathome.com> on 2008/02/01 16:50:02 UTC

how to escape # in the sql statement?

Hi All,

 

I am now in a funny situation. I am using IBatis.NET to connect to a legacy
database system, which there is a column which name contains a "#".
IBatis.NET seems tried to think the # is the started of an in-line
parameter. I use parameter map rather than inline parameter and I even use
quotas to quote the field name but it still does not work (the exception
says "Unrecognized parameter mapping field:."). I check the document there
is no such escape character to escape the "#". Can any one help?

 

Chen Jin

 


RE: how to escape # in the sql statement?

Posted by Chen Jin <cj...@helpathome.com>.
Sure. Here it is (I am using Odbc 2.0 provider to connect a DataFlex
database)

 

<?xml version="1.0" encoding="utf-8" ?>

<sqlMap namespace="Billing"

      xmlns="http://ibatis.apache.org/mapping"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

 

      <alias>

            <typeAlias alias="Invoice" type=" Billing.Data.ClientInvoice,
Billing" />

            <typeAlias alias="InvoiceDetail" type="
Billing.Data.ClintInvoiceDetail, Billing" />

    <typeAlias alias="BillingParam" type=" Billing.BillingParameter,
Billing" />

  </alias>

 

  <parameterMaps>

    <parameterMap id="BillingParameters" class="BillingParam">

      <parameter property="Period"/>

      <parameter property="Supplement"/>

    </parameterMap>  

  </parameterMaps>

  

      <resultMaps>

            <resultMap id="InvoiceResult" class="Invoice">

      <result property="InvoiceNumber" column="INVOICE#" />

      <result property="Contract" column="CONTRACT" />

      <result property="CentryPeriod" column="CENTPERIOD" />

      <result property="SupplementNo" column="SUPPLEMENT_NO" />

      <result property="ClientNumber" column="CLIENT_NUMBER" />

      <result property="ClientName" column="CLIENT_NAME" />

      <result property="SSN" column="CLIENT_SSN" />

      <result property="Hours" column="HOURS_RECEIVED" />

      <result property="Amount" column="AMOUNT_BILLED" />

      <result property="Type" column="TYPE" />

      <result property="Status" column="STATUS" />

      </resultMap>

            

            <resultMap id="DetailResult" class="InvoiceDetail">

      <result property="InvoiceNumber" column="INVOICE#" />

      <result property="DateFrom" column="DATEFROM" />

      <result property="DateTo" column="DATETO" />

      <result property="Hours" column="HOURS" />

      <result property="Amount" column="AMOUNT" />

      <result property="BillCode" column="BILLCODE" />

            </resultMap>

      </resultMaps>

      

      <statements>

    <select id="GetInvoicesForDetroitAAABilling"
parameterMap="BillingParameters" resultMap="InvoiceResult" >

      <![CDATA[

        SELECT I.INVOICE#, I.CONTRACT, I.CENTPERIOD, I.SUPPLEMENT_NO,
I.CLIENT_NUMBER, 

          C.LAST_NAME + ', ' + C.FIRST_NAME AS CLIENT_NAME, C.SSN AS
CLIENT_SSN, 

          I.HOURS_RECEIVED, I.AMOUNT_BILLED, I.TYPE, I.STATUS

        FROM INVOICE I, CLIENT C

        WHERE I.CLIENT_NUMBER = C.CLIENT_NUMBER

          AND I.CONTRACT IN ('C', 'D', 'E', 'F')

          AND I.PERIOD = ?

          AND I.SUPPLEMENT_NO = ?

          AND I.AMOUNT_BILLED > 0

      ]]>

    </select>

 

    <select id="GetInvoiceDetailsByInvoiceNumber" parameterClass="Int"
resultMap="DetailResult">

      SELECT INVOICE#, DATEFROM, DATETO, HOURS, AMOUNT, BILLCODE

      FROM INVDTL

      WHERE INVOICE# = #value#

    </select>

      </statements>

 

</sqlMap>

 

 

Chen Jin

Application Developer
Help At Home, Inc.
1 N. State Street
Suite 1500
Chicago, IL 60602

Phone: (312)704-0081
Toll free: (800)404-3191
Fax: (312)704-1111

http://www.helpathome.com <http://www.helpathome.com/> 

CONFIDENTIALITY NOTICE:  This e-mail and any files or attachments
transmitted with it are confidential and may be protected by legal
privilege.  This e-mail is intended solely for the use of the individual or
entity to whom this e-mail is addressed.  If you are not the intended
recipient of this e-mail, you are hereby notified that any use,
dissemination, distribution or copying of this e-mail is strictly
prohibited.  If you have received this e-mail in error, please notify the
sender immediately by e-mail and delete this e-mail from your system.

  _____  

From: Michael Schall [mailto:mike.schall@gmail.com] 
Sent: Friday, February 01, 2008 4:29 PM
To: user-cs@ibatis.apache.org
Subject: Re: how to escape # in the sql statement?

 

Can you post your actual sqlmap xml so we can see what you are trying to do?

On 2/1/08, Chen Jin <cj...@helpathome.com> wrote:

I tried ## and ####, neither works. However, I think that is great we can
have a new syntax to avoid that. Thanks!

 

Chen Jin

  _____  

From: Clinton Begin [mailto:clinton.begin@gmail.com] 
Sent: Friday, February 01, 2008 11:32 AM
To: user-cs@ibatis.apache.org
Subject: RE: how to escape # in the sql statement?

 

Yeah, JDEdwards?  :-)

 

But yes, you just double the character ## or $$

 

I'm proposing a new syntax for iBATIS 3.x:   #{...} and ${...} respectively.
Thoughts and comments welcome.

 

Clinton

 

 

 

 

From: Michael Schall [mailto:mike.schall@gmail.com] 
Sent: February-01-08 9:11 AM
To: user-cs@ibatis.apache.org
Subject: Re: how to escape # in the sql statement?

 

I'm pretty sure you just double the character... I know if you want a $ in
the query, you double it.

http://www.mail-archive.com/user-cs@ibatis.apache.org/msg01897.html

On Feb 1, 2008 9:50 AM, Chen Jin <cj...@helpathome.com> wrote:

Hi All,

 

I am now in a funny situation. I am using IBatis.NET to connect to a legacy
database system, which there is a column which name contains a "#".
IBatis.NET seems tried to think the # is the started of an in-line
parameter. I use parameter map rather than inline parameter and I even use
quotas to quote the field name but it still does not work (the exception
says "Unrecognized parameter mapping field:."). I check the document there
is no such escape character to escape the "#". Can any one help?

 

Chen Jin

 

 

 


Re: how to escape # in the sql statement?

Posted by Michael Schall <mi...@gmail.com>.
Can you post your actual sqlmap xml so we can see what you are trying to do?

On 2/1/08, Chen Jin <cj...@helpathome.com> wrote:
>
> I tried ## and ####, neither works. However, I think that is great we can
> have a new syntax to avoid that. Thanks!
>
>
>
> Chen Jin
> ------------------------------
>
> *From:* Clinton Begin [mailto:clinton.begin@gmail.com]
> *Sent:* Friday, February 01, 2008 11:32 AM
> *To:* user-cs@ibatis.apache.org
> *Subject:* RE: how to escape # in the sql statement?
>
>
>
> Yeah, JDEdwards?  :-)
>
>
>
> But yes, you just double the character ## or $$
>
>
>
> I'm proposing a new syntax for iBATIS 3.x:   #{...} and ${...}
> respectively.  Thoughts and comments welcome.
>
>
>
> Clinton
>
>
>
>
>
>
>
>
>
> *From:* Michael Schall [mailto:mike.schall@gmail.com]
> *Sent:* February-01-08 9:11 AM
> *To:* user-cs@ibatis.apache.org
> *Subject:* Re: how to escape # in the sql statement?
>
>
>
> I'm pretty sure you just double the character... I know if you want a $ in
> the query, you double it.
>
> http://www.mail-archive.com/user-cs@ibatis.apache.org/msg01897.html
>
> On Feb 1, 2008 9:50 AM, Chen Jin <cj...@helpathome.com> wrote:
>
> Hi All,
>
>
>
> I am now in a funny situation. I am using IBatis.NET to connect to a
> legacy database system, which there is a column which name contains a "#".
> IBatis.NET seems tried to think the # is the started of an in-line
> parameter. I use parameter map rather than inline parameter and I even use
> quotas to quote the field name but it still does not work (the exception
> says "Unrecognized parameter mapping field:…"). I check the document there
> is no such escape character to escape the "#"… Can any one help?
>
>
>
> Chen Jin
>
>
>
>
>

RE: how to escape # in the sql statement?

Posted by Chen Jin <cj...@helpathome.com>.
I tried ## and ####, neither works. However, I think that is great we can
have a new syntax to avoid that. Thanks!

 

Chen Jin

  _____  

From: Clinton Begin [mailto:clinton.begin@gmail.com] 
Sent: Friday, February 01, 2008 11:32 AM
To: user-cs@ibatis.apache.org
Subject: RE: how to escape # in the sql statement?

 

Yeah, JDEdwards?  :-)

 

But yes, you just double the character ## or $$

 

I'm proposing a new syntax for iBATIS 3.x:   #{...} and ${...} respectively.
Thoughts and comments welcome.

 

Clinton

 

 

 

 

From: Michael Schall [mailto:mike.schall@gmail.com] 
Sent: February-01-08 9:11 AM
To: user-cs@ibatis.apache.org
Subject: Re: how to escape # in the sql statement?

 

I'm pretty sure you just double the character... I know if you want a $ in
the query, you double it.

http://www.mail-archive.com/user-cs@ibatis.apache.org/msg01897.html

On Feb 1, 2008 9:50 AM, Chen Jin <cj...@helpathome.com> wrote:

Hi All,

 

I am now in a funny situation. I am using IBatis.NET to connect to a legacy
database system, which there is a column which name contains a "#".
IBatis.NET seems tried to think the # is the started of an in-line
parameter. I use parameter map rather than inline parameter and I even use
quotas to quote the field name but it still does not work (the exception
says "Unrecognized parameter mapping field:."). I check the document there
is no such escape character to escape the "#". Can any one help?

 

Chen Jin

 

 


RE: how to escape # in the sql statement?

Posted by Clinton Begin <cl...@gmail.com>.
Yeah, JDEdwards?  :-)

 

But yes, you just double the character ## or $$

 

I'm proposing a new syntax for iBATIS 3.x:   #{...} and ${...} respectively.
Thoughts and comments welcome.

 

Clinton

 

 

 

 

From: Michael Schall [mailto:mike.schall@gmail.com] 
Sent: February-01-08 9:11 AM
To: user-cs@ibatis.apache.org
Subject: Re: how to escape # in the sql statement?

 

I'm pretty sure you just double the character... I know if you want a $ in
the query, you double it.

http://www.mail-archive.com/user-cs@ibatis.apache.org/msg01897.html

On Feb 1, 2008 9:50 AM, Chen Jin <cj...@helpathome.com> wrote:

Hi All,

 

I am now in a funny situation. I am using IBatis.NET to connect to a legacy
database system, which there is a column which name contains a "#".
IBatis.NET seems tried to think the # is the started of an in-line
parameter. I use parameter map rather than inline parameter and I even use
quotas to quote the field name but it still does not work (the exception
says "Unrecognized parameter mapping field:."). I check the document there
is no such escape character to escape the "#". Can any one help?

 

Chen Jin

 

 


RE: how to escape # in the sql statement?

Posted by Clinton Begin <cl...@gmail.com>.
Then you need 4....

 

colname####

 

 

Clinton

 

From: Chen Jin [mailto:cjin@helpathome.com] 
Sent: February-01-08 9:47 AM
To: user-cs@ibatis.apache.org
Subject: RE: how to escape # in the sql statement?

 

Thanks! However, it seems this does not work. Now the driver told me the
column, which has 2 #s (XXX##), could not be found.

 

Chen Jin

  _____  

From: Michael Schall [mailto:mike.schall@gmail.com] 
Sent: Friday, February 01, 2008 10:11 AM
To: user-cs@ibatis.apache.org
Subject: Re: how to escape # in the sql statement?

 

I'm pretty sure you just double the character... I know if you want a $ in
the query, you double it.

http://www.mail-archive.com/user-cs@ibatis.apache.org/msg01897.html

On Feb 1, 2008 9:50 AM, Chen Jin <cj...@helpathome.com> wrote:

Hi All,

 

I am now in a funny situation. I am using IBatis.NET to connect to a legacy
database system, which there is a column which name contains a "#".
IBatis.NET seems tried to think the # is the started of an in-line
parameter. I use parameter map rather than inline parameter and I even use
quotas to quote the field name but it still does not work (the exception
says "Unrecognized parameter mapping field:."). I check the document there
is no such escape character to escape the "#". Can any one help?

 

Chen Jin

 

 


RE: how to escape # in the sql statement?

Posted by Chen Jin <cj...@helpathome.com>.
Thanks! However, it seems this does not work. Now the driver told me the
column, which has 2 #s (XXX##), could not be found.

 

Chen Jin

  _____  

From: Michael Schall [mailto:mike.schall@gmail.com] 
Sent: Friday, February 01, 2008 10:11 AM
To: user-cs@ibatis.apache.org
Subject: Re: how to escape # in the sql statement?

 

I'm pretty sure you just double the character... I know if you want a $ in
the query, you double it.

http://www.mail-archive.com/user-cs@ibatis.apache.org/msg01897.html

On Feb 1, 2008 9:50 AM, Chen Jin <cj...@helpathome.com> wrote:

Hi All,

 

I am now in a funny situation. I am using IBatis.NET to connect to a legacy
database system, which there is a column which name contains a "#".
IBatis.NET seems tried to think the # is the started of an in-line
parameter. I use parameter map rather than inline parameter and I even use
quotas to quote the field name but it still does not work (the exception
says "Unrecognized parameter mapping field:."). I check the document there
is no such escape character to escape the "#". Can any one help?

 

Chen Jin

 

 


Re: how to escape # in the sql statement?

Posted by Michael Schall <mi...@gmail.com>.
I'm pretty sure you just double the character... I know if you want a $ in
the query, you double it.

http://www.mail-archive.com/user-cs@ibatis.apache.org/msg01897.html

On Feb 1, 2008 9:50 AM, Chen Jin <cj...@helpathome.com> wrote:

>  Hi All,
>
>
>
> I am now in a funny situation. I am using IBatis.NET to connect to a
> legacy database system, which there is a column which name contains a "#".
> IBatis.NET seems tried to think the # is the started of an in-line
> parameter. I use parameter map rather than inline parameter and I even use
> quotas to quote the field name but it still does not work (the exception
> says "Unrecognized parameter mapping field:…"). I check the document there
> is no such escape character to escape the "#"… Can any one help?
>
>
>
> Chen Jin
>
>
>