Code Comments
Programming Forum and web based access to our favorite programming groups.This was reported just a few days ago on rt cpan http://rt.cpan.org/Public/Bug/Display.html?id=35353 I fixed it and checked it in. It will be in release 1.22 of DBD::Oracle cheers John Scoles > With Oracle having finally come out with native Intel drivers for > MacOS, I tried to install these to get rid of having to use a Rosetta- > ized version of perl to run Oracle things through, but kept running > into a problem where sometimes bind variables would work, and > sometimes I would get things like: > > ORA-00911: invalid character (DBD ERROR: error possibly near <*> > indicator at char 77 in ' > SELECT > System_User_ID, > '1' Hey > FROM > System_User > WHERE > Login LIKE <*>? ESCAPE '' > > After more investigation, I determined that any query that contained a > literal quote would die like this, and any query that did not was > fine. It seems that there is an error in dbdimp.c where is_literal is > defined as a bool but then used as a char. This triggers the > behavior, at least GCC 4.0.1 on the Mac and possibly other GCC4 > platforms, where is_literal will get the value 1, and not the value of > the literal type, so that the end of the literal is never seen. The > following patches this so that the behavior is correct and things work: > > *** dbdimp.c.orig Mon Apr 28 12:08:50 2008 > --- dbdimp.c Mon Apr 28 12:09:07 2008 > *************** > *** 1096,1102 **** > { > dTHX; > D_imp_dbh_from_sth; > ! bool in_literal = FALSE; > char in_comment = '\0'; > char *src, *start, *dest; > phs_t phs_tpl; > --- 1096,1102 ---- > { > dTHX; > D_imp_dbh_from_sth; > ! char in_literal = '\0'; > char in_comment = '\0'; > char *src, *start, *dest; > phs_t phs_tpl; > > -- Matt >
Post Follow-up to this message
Show a Printable Version
Email This Page to Someone!
Receive updates to this thread
Powered by vBulletin
Copyright 2000-2006 Jelsoft Enterprises Limited.