Archives of the TeradataForum
Message Posted: Fri, 24 Jan 2003 @ 16:51:35 GMT
ANSI mode has certain features that are very important to some applications.
The most critical of these is how transactions handle errors.
If, in a transaction, I've been inserting or updating records, and then have an insert/update that causes an error, in Teradata mode the transaction gets rolled back.
In ANSI mode, the error gets reported to the application, which can then decide to rollback or to commit, saving all the work that had been done so far in that transaction.
For some programs, especially those written originally for other databases, this is very important. This behavior makes sense for most applications, and I which it worked this way always.
Unfortunately, this behavior is tied to all the other differences in "ansi" mode, many of which are not generally what you want.
For example, there is no "autocommit" mode if you are in "ansi" mode. Which makes life hard for ODBC or JDBC, since they must emulate an autocommit mode when the Teradata system is configured ansi.
Also, string comparisons are by default case-specific in ANSI mode, when most people find the non-casespecific behavior more intuitive. Select * from tab where name = "McDevitt"; works in Teradata mode even if name is "MCDEVITT" or "mcdevitt" or "McDevitt", but in ANSI mode I'd have to remember to write this query as Select * from tab where upper(name) = "MCDEVITT";
|Copyright 2016 - All Rights Reserved|
|Last Modified: 28 Jun 2020|