Hi,
This was my first Post ever on Tek-Tips. I was a little excited when I made this post since I had just found tek-tips.
I agree that I didn't answer the question at hand.
Personally I have never used Oracle. This question seems to come up a lot on different forums.
I found.....
thread328-36560
thread353-74411
Which have about as much information in them as this Thread.
they basically say....
contact NCR offline because This Board forbids selling.
See those threads for the names of NCR people if you want to persue that.
The real question is as you state....
How hard is it convert your Oracle SQL scripts
and Stored procedures and programs to use Teradata?
I really don't want to go into much detail about this because there are Companies out there ( including NCR/Teradata ) who make money doing this conversion for Companies and I really don't want to give away any trade secrets.
I realize for Little Installations the availablity of this type information would be desirable.
Teradata is ANSI 92 compliant and supports some ANSI 99 compliant features.
I found a thread recently which states....
thread759-92343 ( Oracle 9i now fully supports ANSI 99 )
Whether that is TRUE or not I don't know and this doesn't say anything about Oracle 8, so I will assume that is only ANSI 92 compliant with some ANSI 99 features like Teradata.
If you only use ANSI SQL constructs then there is no problem since both Database are ANSI SQL compliant.
The Problems come in when you use Oracle or Teradata Extensions which aren't defined in the ANSI SQL standard, but that isn't saying much.
EXP, LOG, LN, SQRT
are defined as extensions.
However, they are available in Both Teradata and Oracle.
So finding out which extensions are supported on both platforms and which are UNIQUE to either platform is this purpose of this inquiry.
I found these threads.
-----------
thread328-102519 ( Oracle Replace )
There are no response to this thread so I guess the answer is Teradata Doesn't support it.
-----------
thread185-66511 ( Padding columns )
Oracle has a construct called LPAD, in teradata you just redefine the output column to be a char(x) where X is the size of the field padded out you want.
-----------
I know there is a Thread in this fourm somewhere but I can't find it
or maybe it is over at the other Teradata Forum I monitor
which compares the teradata CASE statement to the ORACLE DECODE statement.
-----------
There might be a lot of external Control language in your Oracle SQL about how many units of Parallelism or HINTS about INDEXes to use which really has nothing to do with the SQL.
Teradata Doesn't support any of this since our Optimizer will figure this all out as it parses the SQL and looks at the best way to accomplish the query.
-----------
Now Stored procedures.
Converting the Stored procedure gets back to whether you are using ANSI constructs or Extensions where the extensions are not supported.
One of the biggest differences or so I have been told since I have never used Oracle Stored procedures, is at this point of Teradata Stored procedures you can't return MULTIPLE rows as the result of the stored procedure like you can with Oracle.
It can't only return a Single element. Now internally it can operate on multiple rows and even delete, update and insert multiple rows, just can't return them back to the user.
Our work around for this difference is to have the stored procedure create a Temp file with the result set and then have the user select * from the result table after the stored procedure has been executed.
call sp1;
sel * from sp1_temp_table;
delete * from sp1_temp_table;
Now it is possible that some Stored procedure could be converted to Teradata Macros instead of Stored procedures, Then this limitation wouldn't apply.