The most notable of these would be date/time and null handling.  Also 
parameter binding.  One big one you'll hit with Oracle is trying to insert a 
string > 2000 characters with ODBC into a LONG column.

another i.e. 
  ORACLE  to_date('2003/01/03' '12:05:03 A.M.')
  MSSQL   2003/01/03' '12:05:03
  MySQL   2003-01-03 00:05:03

Oracle will also run queries with unbound parameters if you forget one and 
just return nothing or cause an infinite loop. MSSQL not only won't but "let 
you mix parameter styles" if you bind some of them and not others.

Joing tables you'll also find is different.  (+)= vs *= in ORACLE vs MSSQL
Concat tables -- || in Oracle, I forget MSSQL of the top of my head.

Finally, you can't have conncurrent database handle access in I think anything 
other then ORACLE.

There is a way to get around all these and thats to wrap all your database 
calls in wrappers in addition to the ODBC connect/dissconect calls.

You will have to make multiple passes.  

I've been successful with this so that I can reliably run MySQL-4.1 (sub 
selects), MSSQL, Oracle 8.1.7 and probably 9i.

Of course you'll never really get the sequences right unless you just use an 
Ids table, but that throws away some maybe functionality on MySQL and Oracle 
so you need another wrapper for.  DBIx::OracleSequencer from CPAN is a good 
module... don't get me wrong, but its much easier to just write out select 
$seq\.nextval from dual ... Then you don't have to worry about commenting it 
out on systems that don't have it or eval().  Just an "if" around the my $sql 
= "whatever".

On Tuesday 25 February 2003 19:09, Bill Moran wrote:

> The whole "ODBC compatiblity" thing is (unfortunately) a lie.  Nobody has
> stood up and constrained the standard enought to make it truely compatible
> across all databases.

Philip M. Gollucci [EMAIL PROTECTED] 301.474.9294 301.646.3011 (cell) 

Science, Discovery, & the Universe (UMCP) 
Webmaster & Webship Teacher 

Database/PERL Programmer & System Admin 
URL : 

Resume : 

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-questions" in the body of the message

Reply via email to