16.20 - 例: OTRIMを使用した、1-D ARRAYデータ型とテーブルへの問合わせ - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

次の1次元のARRAYデータ型およびテーブルについて考えてみましょう。

CREATE TYPE phonenumbers AS VARRAY(20) OF CHAR(10);
CREATE TABLE employee_info (eno INTEGER, phonelist phonenumbers);

テーブルには次の値が取り込まれます。

/* The first 2 elements are populated; the rest are uninitialized. */
INSERT INTO employee_info VALUES (1, 
   phonenumbers('1112223333', '6195551234'));
/* Empty ARRAY instance */
INSERT INTO employee_info VALUES (2, 
   phonenumbers());
/* Update empty ARRAY instance such that element 3 is set to a value;
   Then elements 1 and 2 are set to NULL, the rest are uninitialized */
UPDATE employee_info
SET phonelist[3] = '8584850000'
WHERE id = 2;

次の問合わせは、取り込まれている最後の構成要素をphonelist配列から削除します。

SELECT eno, phonelist.OTRIM()
FROM employee_info;

問合わせの結果を次に示します。

ENO         phonelist.OTRIM()
---         -----------------
 1           ('1112223333')
 2           (NULL,NULL)

次の問合わせは、取り込まれている最後の構成要素を2つ、phonelist配列から削除します。

SELECT eno, phonelist.OTRIM(2)
FROM employee_info;

問合わせの結果を次に示します。

ENO         phonelist.OTRIM(2)
---         ------------------
 1           ()       (the only 2 populated elements were removed so we
                       now have an empty array value)
 2           (NULL)