Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Feb 2003 16:15:34 +0000
From:      "Philip M. Gollucci" <philip@p6m7g8.com>
To:        Bill Moran <wmoran@potentialtech.com>, Trent Nelson <trent@limekiln.vcisp.net>
Cc:        Mike Meyer <mwm@mired.org>, synrat <synrat@wirewalk.org>, questions@freebsd.org
Subject:   Re: Oracle on FreeBSD
Message-ID:  <200302251615.34473.philip@p6m7g8.com>
In-Reply-To: <3E5BBF62.2070607@potentialtech.com>
References:  <1046128729.490.8.camel@dethstar> <20030225184430.GA73776@limekiln.vcisp.net> <3E5BBF62.2070607@potentialtech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
The most notable of these would be date/time and null handling.  Also=20
parameter binding.  One big one you'll hit with Oracle is trying to inser=
t a=20
string > 2000 characters with ODBC into a LONG column.

another i.e.=20
  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 an=
d=20
just return nothing or cause an infinite loop. MSSQL not only won't but "=
let=20
you mix parameter styles" if you bind some of them and not others.

Joing tables you'll also find is different.  (+)=3D vs *=3D 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 any=
thing=20
other then ORACLE.

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

You will have to make multiple passes. =20

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

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




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

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

--=20
END=20
-------------------------------------------------------------------------=
-----=20
Philip M. Gollucci philip@p6m7g8.com 301.474.9294 301.646.3011 (cell)=20

Science, Discovery, & the Universe (UMCP)=20
Webmaster & Webship Teacher=20
URL: http://www.sdu.umd.edu=20

eJournalPress=20
Database/PERL Programmer & System Admin=20
URL : http://www.ejournalpress.com=20

Resume : http://p6m7g8.net/Resume=20


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200302251615.34473.philip>