blog icon Recent Articles

The DbLink facility allows Teradata users to access data in external systems. However, as distributed, it only supports accessing data from external Oracle and Teradata systems.

In this article we will look at what is required to add support for other data sources. As it turns out, not much, just some basic Java programming abilities.

Many databases provide the ability for accessing external data via a mechanism via a SELECT query. Examples include Linked Tables in MS-Access and External Tables in Oracle. A similar capability will become available in Teradata 15, it will be known as Query Grid. However users of Teradata prior to 15 are out of luck.

Teradata has provided the foundation for accessing external data via a SELECT query ever since Table UDF's were added in or around Teradata 12. There is even reference in the UDF programmers manuals to just such a facility (but no actual code to show how to do it).

In this article, you can download a working facility I've called DbLink that you can setup and use to access data from external data sources without having to write your own UDF.

With the introduction of Query Grid in Teradata 15, many people have been asking "what about me? I am on not going to be on TD 15 for some time.".

In this series of articles I provide a tool I call DbLink which provides a similar capability for versions of Teradata prior to 15.0. The DbLink tool consists of a Table UDF and supporting components that may be used to access data from a remote RDBMS via JDBC.


Stored Procedures


SQL Stored Procedures were added to Teradata around 2003 with the release of Teradata V2R5.1. Since then the capabilities of SQL Stored Procedure s has been expanded. However, there are still some queries that cannot be run directly from within a Stored Procedure.

 

In parts 1 and 2, we looked at how to load and retrieve large objects using Teradata BLOBs and CLOBs. In part 1, I put forward my unbreakable golden rule that you shouldn’t simply store Object Models as Large Objects. Rather, always map your objects’ attributes to columns in a table; don’t just serialize a bunch of classes and store them in a BLOB.

In part 3, I present another of my unbreakable golden rules; which is “Rules were made to be broken”. The focus of this article is how to serialize and persist (store) an Object Model into a BLOB on Teradata and reinstate it.

From time to time I’m asked how one might go about writing an UDF or an INMod or some other procedural extension to the database. The question isn’t a “where do I learn C or C++” question; rather it is a how do I go about debugging and testing my extension without the overheads and constraints of running within the database (or utility).


My response is you can use “my Teradata” for which I have the source code (attached). This will allow you to run, test and debug your function outside of Teradata. In short with “my Teradata” all of the features of your IDE will be available to you, including your debugger.

In Part 1, we looked at what Large Objects are and some tactics that we could employee to load them into Teradata. As I stated back in part 1, loading large objects is great, but by itself is pretty useless. In this article, we will look at extracting Binary Large Objects from Teradata for inclusion in a web application.

But before we get to that, we need to know something about the large objects we will be dealing with.

Lately it seems like there has been quite a few questions relating to the use of Large Objects on the various Teradata forums. Mostly these revolve around the question of how do I get Large Objects into the database. So it seems like there is a bit of mystery surrounding Large Objects.

For myself, the mystery is just who is “Large” and to what does he (or she) “Object”? Perhaps "Large" objects to the veil of mystery being lifted which is what this series of articles is about - working with Large Objects.

In part 1, we will look at getting those Large Objects of yours into the Teradata. One way or another we will get them into Teradata, kicking and screaming if need be (however, it will be relatively painless, I promise) and we will do this despite any "Objections" "Large" may have.

Later in part 2, we will drag those Large Objects back out and use them in a web application.

HTML boasts a wide range of features to present data to end users. Add in the various frameworks that “sit on top” of HTML and the web represents a rich and powerful environment through which information may be delivered to end users.

While the web is a powerful environment, there are times when a windows based application might be better suited to the task at hand. This article presents a Java class library that makes this a lot easier.