Re: Single quote as first character in string fails in compare

From: Mark D Powell <Mark.Powell2_at_hp.com>
Date: Mon, 10 Oct 2011 11:57:26 -0700 (PDT)
Message-ID: <1b71757b-392b-4d5e-ae12-23135c8dbaa1_at_6g2000prh.googlegroups.com>



On Oct 10, 5:02 am, "Álvaro G. Vicario"
<alvaro.NOSPAMTH..._at_demogracia.com.invalid> wrote:
> El 07/10/2011 20:30, Joachim Verhagen escribi /wrote:
>
> > I got a very strange problem.   If the first character in a string is
> > a single quote I get a syntax error,  but that only happens in a
> > compare and not in sqlplus.
>
> > This is what happens:
>
> > SELECT * FROM dual WHERE dummy ='''aaaa'
>
> > DBArecordSet.OpenSet: Error from: 'OraOLEDB' 0x80040E14 (-2147217900)
> > ORA-00933: SQL command not properly ended Native: 933  (help=.0)
>
> > This goes  wrong with an OLEDB and ODBC connection.  It works in
> > sqlplus.
>
> I don't know what your client language is but here's an excerpt from the
> ODBC chapter in the PHP manual:
>
> Parameters in parameter_array will be substituted for placeholders in
> the prepared statement in order. Elements of this array will be
> converted to strings by calling this function.
>
> Any parameters in parameter_array which start and end with single quotes
> will be taken as the name of a file to read and send to the database
> server as the data for the appropriate placeholder.
> If you wish to store a string which actually begins and ends with single
> quotes, you must add a space or other non-single-quote character to the
> beginning or end of the parameter, which will prevent the parameter from
> being taken as a file name. If this is not an option, then you must use
> another mechanism to store the string, such as executing the query
> directly with odbc_exec()).
>
> http://es.php.net/manual/en/function.odbc-execute.php
>
> It isn't exactly your case (your string does not end with single quote)
> but this suggests that the ODBC implementation has a weird relationship
> with single quotes.
>
> --
> --http://alvaro.es- lvaro G. Vicario - Burgos, Spain
> -- Mi sitio sobre programaci n web:http://borrame.com
> -- Mi web de humor satinado:http://www.demogracia.com
> --

I find this to be an interesting piece of information. As is the fact a name can start with a sinle quote. In English names about the only time you run into single quotes in names is with O'reilly, O'connor, etc ... and it is not a starting or ending. Naturally I have seen quoted strings being stored but apparently the access is not via ODBC.

HTH -- Mark D Powell -- Received on Mon Oct 10 2011 - 13:57:26 CDT

Original text of this message