I'm not trying to insult the developers here but I've used Oracle, Sybase, MSSQL, MySQL, etc for years and for the most part they're all fairly similar and easy to do basic things, such as string to date conversions, proactive checks to see if something exists, etc.. But Teradata appears to be lacking in both of the above mentioned built in functions and much more. I actually nerd raged a little today because, where it's the most simple task to take a stored procedure in any of the aforementioned databases, it's been a nightmare for me in Teradata.
To elaborate, I can make a mile long query that does every function under the sun, insert, update, create tables, drop tables, check indexes, etc in MSSQL, in ANY order in one stored procedure. Try to do that in TD? ugh, well I need a couple macros and a stored procedure to do handle the DDL sequences, then to call the macro's in the right sequence etc. Why?
I find there are too many rules, without enough justification. I've read many articles on the difference between Stored Procedures and Macros and for the life of me, have no idea why they bothered to keep both of them when you have functions as well.
I guess what I'm saying is, after this long, why not take a look at what others have done and recreate the same built in functions? I mean, it's not like I can't accomplish the same things, it's just a pain when I'm doing rapid development to have to stop and make my own function to simply see if a table exists so I can determine if I want to drop it not, it's a huge headache to have to convert an integer to a varchar so I can test if month '01' will work with a date, when passing 1 should work just as well with dates conversions.
Anyhow, sorry for the rant, it's just been a frustrating morning and I owe it all to Teradata
I am not trying to be so smart. But there is always positive and negative aspects of a design of database engine. And you just mentioned all those "not our competitors" why not speak about SAP HANA, GP, IBM NT, IBM DB2, HYPERTABLE(BIGTABLE) ... and such?
For example, you are concerning about function, macro, sp, udf and so on.... I am more concerned why the hell oracle is having trouble to simply count rows on table with 8billions rows, in TD i get this in 8sec with low_profile, low_account rights, using oracle it runs for 6h and ended because 'snapshot is too old' ....
Speaking of Oracle I am more concern about the "indexes" and how they implemented.... it is painfull to be an Oracle Admin ;) ... and don't let me start with the 'storage' and 'tablespaces' or/and "parallel processing" ...
ad_MACRO: it is set of statements and formating options, to help users to ask quickly as possible without any typos, sometimes you can force them to use macros instead of directly issued statements .... difference ? quite big, macro is processed much quicker than the very same in normal statement processing.
ad_SP: includes Teradata SQL(as well ANSI SQL) and Procedural Statements, so much more options in comparation to macros
ad_UDF: Java or C extension to SQL functionality ....
ad_oracle_functions: you don't need to write your own, there is downloadable set of favorite oracle functions.
To see if table exist, you just write a 'trigger' related to your favorite table, or there are other Teradata SQL commands to help you directly if table exist or not.
You want to work with datatypes related to date-time-stamp? Maybe you should check the manuals to se how TD handle/store/format with such datatypes (also if you are using 14.x version, learn how to use internal calendar) ,You might find, that having TO_DATE / TO_CHAR combos over one line is quite wasting of your time. In TD you can just use the math, no conversion (of course you have to store date/time in correct datatypes
PS: instead of reading articles, get a Teradata Factory course and than you will PPrecall your post :)
In my opinion .... its a matter of perspective.
I agree to some points mentioned by Nezoic, but again .... it all depends on the way you at things.
Teradata Engineering is continously adding more and more features that are very much related to DWH and SQL writing .... that is the reason in a span of couple years we have grown from TD 12 to TD 14.
I agree with Veehell about complexity if indexes, storage, tablespaces, parallelism etc .... at times it feels writing data with a pen-paper might be faster .... but again the advanced SQL engine is a big plus for Oracle RDBMS.
I can list down many features which are available in Oracle/SQL Server/etc and not in Teradata and vice-versa .... it just doesn't make any RDBMS good or bad .... its just that we don't really have one RDBMS which works best for all people and for all needs.
So, just stay put and am sure you will manage the combination of macros, SPs, etc. :)