UDTは、データベース上にのみ存在できます。各UDTには、from-sql routineとto-sql routineが関連付けられています。from-sql routineは、UDTから定義済みの型の値を生成します。このルーチンは、UDTがデータベースからクライアント システムにエクスポートされるときに、自動的に呼び出されます。to-sql routineは、定義済みの型の値からUDT値を生成します。このルーチンは、クライアント システムからデータベース サーバー上のUDTに値がインポートされるときに、自動的に呼び出されます。from-sql routineおよびto-sql routineにより、UDTと定義済みの型の間のマッピングが作成されます。定義済みの型は、UDTの外部型と呼ばれます。クライアント アプリケーションが扱うのは外部型のみであり、UDT値を直接処理しません。
例えば、FULLNAMEという名前のUDTが存在し、FULLNAMEと関連付けられている外部型がVARCHAR(46)の場合、データベース サーバーはFULLNAME値のエクスポート時に、FULLNAME UDTと関連付けられているfrom-sql routineを呼び出して、値をFULLNAME値からVARCHAR(46)値に変換します。したがって、クライアントは、VARCHAR(46)値を受け取る場合と同じ形式のデータを受け取ることを想定する必要があります。
同様に、クライアントがFULLNAME UDTにインポートされる値を指定するときは、VARCHAR(46)フィールドに対するのと同じ値を指定する必要があり、データベース サーバーは、FULLNAME UDTと関連付けられているto-sql routineを呼び出してVARCHAR(46)からFULLNAMEに値を変換します。