この例の最初の部分では、EnableEON dbscontrolフラグはfalseに設定されているため、列名の制限はデフォルトで30文字になります。
テーブルt1が次のように定義されると仮定します。
CREATE TABLE t1(yr INTEGER, mon VARCHAR(41), sales INTEGER);
またテーブルt1に以下の行が含まれているとします。
SELECT * FROM t1; yr mon sales ---- ---------------------------------- ----- 2001 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 200
行では、‘mon’列に35文字が含まれています。
次のピボット クエリー結果は、‘mon’列の値を35文字から30文字に切り詰めます。
SELECT * FROM t1 PIVOT(SUM(sales) FOR mon IN ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'))tmp; YR aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ---- ------------------------------- 2001 200
ここで、EnableEON dbscontrolフラグをtrueに設定する、つまり列名の制限のデフォルトを128文字にすると仮定します。
またテーブルt2が次のように定義されると仮定します。
CREATE TABLE t2(yr INTEGER, mon VARCHAR(131), sales INTEGER);
テーブルt2に以下の行が含まれているとします。
SELECT mon FROM t2; mon ------------------------------------------------------------------------------------------------------------------------------- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
行では、‘mon’列に130文字が含まれています。
次のピボット クエリーでは、‘mon’列の値が130文字から128文字に切り詰められます。
SELECT * FROM t2 PIVOT(SUM(sales) FOR mon IN ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')) tmp; YR ---- 2001 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ---------------------------------------------------------------------------------------------------------------------------------- 200