LABEL
LABEL ステートメントは、種々のデータベース・オブジェクトのカタ ログ記述にラベルを追加したり、置換したりします。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むことができ、また対話式に呼び出すこともできます。 これは、動的に準備できる実行可能ステートメントです。
権限
表、ビュー、別名、列、タイプ、パッケージ、シーケンス、または XSR オブジェクトに対してラベルを付けるには、ステートメントの権限 ID が保持する特権に、次のうち少なくとも 1 つを含める必要があります。
- ステートメントで識別されている表、ビュー、別名、タイプ、パッケージ、シーケンス、変数、XSR オブジェクト、関数、またはプロシージャーの場合
- その表、ビュー、別名、タイプ、パッケージ、シーケンス、変数、XSR オブジェクト、関数、またはプロシージャーに対する ALTER 特権、および
- その表、ビュー、別名、タイプ、パッケージ、シーケンス、変数、XSR オブジェクト、関数、またはプロシージャーが入っているライブラリーに対する *EXECUTE システム権限
- データベース管理者権限
制約またはトリガーに対してラベルを付けるには、ステートメントの権限 ID が保持する特権に、次のうち少なくとも 1 つを含める必要があります。
- ステートメント内の制約またはトリガーのサブジェクト表に対して、
- 対象表に対する ALTER 特権
- 対象表が入っているライブラリーに対するシステム権限の *EXECUTE
- データベース管理者権限
索引にラベルを付けるためには、ステートメントの権限 ID によって保持される特権に、 少なくとも次のいずれか 1 つが含まれなければなりません。
- ステートメントで識別される索引に対して、
- その索引についての *OBJALTER システム権限
- 索引が入っているライブラリーに対する *EXECUTE システム権限
- データベース管理者権限
関数にラベルを付けるためには、ステートメントの権限 ID によって保持され る特権に、少なくとも次のいずれか 1 つが含まれなければなりません。
- SYSFUNCS および SYSROUTINES カタログ・ビューと表の場合
- SYSROUTINES に対する UPDATE 特権
- SYSFUNCS に対する *OBJOPR システム権限、および
- QSYS2 ライブラリーに対する *EXECUTE システム権限
- データベース管理者権限
プロシージャーにラベルを付けるためには、ステートメントの権限 ID によって保 持される特権に、少なくとも次のいずれか 1 つが含まれなければなりません。
- SYSPROCS および SYSROUTINES カタログ・ビューと表の場合:
- SYSROUTINES に対する UPDATE 特権
- SYSPROCS に対する *OBJOPR システム権限、および
- QSYS2 ライブラリーに対する *EXECUTE システム権限
- データベース管理者権限
- このステートメントの許可 ID には、セキュリティー管理者権限 がなければなりません。 管理権限を参照してください。
シーケンスにラベルを付けるためには、 ステートメントの権限 ID によって保持される特権にも、 少なくとも次のいずれか 1 つが含まれなければなりません。
- データ域変更 (CHGDTAARA) CL コマンドに対する *USE 権限
- データベース管理者権限
ステートメントの権限 ID は、次の場合に別名に対する ALTER 権限を保有します。
- その別名の所有者である場合。
- その別名の *OBJALTER または *OBJMGT のいずれかのシステム権限が認可されている場合。
変数にラベルを付けるためには、ステートメントの権限 ID によって保持される特権にも、少なくとも次のいずれか 1 つが含まれなければなりません。
- SYSVARIABLES カタログ表の場合
- SYSVARIABLES に対する UPDATE 特権
- QSYS2 ライブラリーに対する *EXECUTE システム権限
- データベース管理者権限
XSR オブジェクトにラベルを付けるためには、ステートメントの権限 ID によって保持される特権にも、少なくとも次のいずれか 1 つが含まれなければなりません。
- XSROBJECTS カタログ表の場合
- XSROBJECTS に対する UPDATE 特権
- QSYS2 ライブラリーに対する *EXECUTE システム権限
- データベース管理者権限
SQL 特権に対応するシステム権限の説明については、表またはビューへの権限を検査する際の対応するシステム権限、シーケンスへの権限を検査する際の対応するシステム権限、およびパッケージへの権限を検査する際の対応するシステム権限を参照してください。
構文
>>-LABEL--ON----------------------------------------------------> >--+-+-ALIAS--alias-name---------------------------------------------------+--IS--string-constant-+->< | +-COLUMN--+-table-name.column-name-+--+------+------------------------+ | | | '-view-name.column-name--' '-TEXT-' | | | +-CONSTRAINT--constraint-name-----------------------------------------+ | | +-+-+-FUNCTION-+--function-name--+------------------------------+-+---+ | | | | '-ROUTINE--' '-(--+--------------------+--)-' | | | | | | | .-,--------------. | | | | | | | | V | | | | | | | | '---parameter-type-+-' | | | | | '-SPECIFIC--+-FUNCTION-+--specific-name-------------------------' | | | | '-ROUTINE--' | | | +-INDEX--index-name---------------------------------------------------+ | | +-MASK--mask-name-----------------------------------------------------+ | | +-PACKAGE--package-name--+-------------------------+------------------+ | | | | .-VERSION-. | | | | | '-+---------+--version-id-' | | | +-PERMISSION--permission-name-----------------------------------------+ | | +-+-+-PROCEDURE-+--procedure-name--+------------------------------+-+-+ | | | | '-ROUTINE---' '-(--+--------------------+--)-' | | | | | | | .-,--------------. | | | | | | | | V | | | | | | | | '---parameter-type-+-' | | | | | '-SPECIFIC--+-PROCEDURE-+--specific-name--------------------------' | | | | '-ROUTINE---' | | | +-SEQUENCE--sequence-name---------------------------------------------+ | | +-TABLE--+-table-name-+-----------------------------------------------+ | | | '-view-name--' | | | +-TRIGGER--trigger-name-----------------------------------------------+ | | +-TYPE--+-distinct-type-name-+----------------------------------------+ | | | '-array-type-name----' | | | +-VARIABLE--variable-name---------------------------------------------+ | | '-XSROBJECT--xsrobject-name-------------------------------------------' | | .-,--------------------------------. | | .-COLUMN-. V | | +-+--------+--+-table-name-+--(----column-name--IS--string-constant-+--)-----------------------+ | '-view-name--' | | .-,--------------------------------------. | | .-COLUMN-. V | | '-+--------+--+-table-name-+--(----column-name--TEXT--IS--string-constant-+--)-----------------' '-view-name--' parameter-type |----data-type--+------------+----------------------------------| '-AS LOCATOR-' data-type |--+-built-in-type------+---------------------------------------| +-distinct-type-name-+ '-array-type-name----'
built-in-type |--+-+---SMALLINT---+----------------------------------------------------------------------+--| | +-+-INTEGER-+--+ | | | '-INT-----' | | | '---BIGINT-----' | | .-(5,0)------------------------. | +-+-+-DECIMAL-+-+--+------------------------------+-------------------------------------+ | | '-DEC-----' | | .-,0--------. | | | '-+-NUMERIC-+-' '-(--integer--+-----------+--)-' | | '-NUM-----' '-, integer-' | | .-(--52--)------. | +-+-FLOAT--+---------------+-+----------------------------------------------------------+ | | '-(--integer--)-' | | | +-REAL---------------------+ | | | .-PRECISION-. | | | '-DOUBLE--+-----------+----' | | .-(--34--)-. | +---DECFLOAT--+----------+--------------------------------------------------------------+ | '-(--16--)-' | | .-(--1--)-------. | +-+-+-+-CHARACTER-+--+---------------+----------+--+----------------+-----------------+-+ | | | '-CHAR------' '-(--integer--)-' | +-FOR BIT DATA---+ | | | | '-+-+-CHARACTER-+--VARYING-+--(--integer--)-' +-FOR SBCS DATA--+ | | | | | '-CHAR------' | +-FOR MIXED DATA-+ | | | | '-VARCHAR----------------' '-ccsid-clause---' | | | | .-(--1M--)-------------. | | | '---+-+-CHARACTER-+--LARGE OBJECT-+----+----------------------+--+----------------+-' | | | '-CHAR------' | '-(--integer--+---+--)-' +-FOR SBCS DATA--+ | | '-CLOB------------------------' +-K-+ +-FOR MIXED DATA-+ | | +-M-+ '-ccsid-clause---' | | '-G-' | | .-(--1--)-------. | +-+---GRAPHIC----+---------------+-------+--+--------------+----------------------------+ | | '-(--integer--)-' | '-ccsid-clause-' | | +-+-GRAPHIC VARYING-+--(--integer--)---+ | | | '-VARGRAPHIC------' | | | | .-(--1M--)-------------. | | | '---DBCLOB----+----------------------+-' | | '-(--integer--+---+--)-' | | +-K-+ | | +-M-+ | | '-G-' | | .-(--1--)-------. | +-+-+-+-NATIONAL CHARACTER-+--+---------------+----------+---------------------+--------+ | | | +-NATIONAL CHAR------+ '-(--integer--)-' | | | | | | '-NCHAR--------------' | | | | | '-+-+-NATIONAL CHARACTER-+--VARYING-+--(--integer--)-' | | | | | +-NATIONAL CHAR------+ | | | | | | '-NCHAR--------------' | | | | | '-NVARCHAR------------------------' | | | | .-(--1M--)-------------. | | | '-----+-+-NATIONAL CHARACTER-+--LARGE OBJECT-+------+----------------------+-' | | | '-NCHAR--------------' | '-(--integer--+---+--)-' | | '-NCLOB--------------------------------' +-K-+ | | +-M-+ | | '-G-' | | .-(--1--)-------. | +-+-+-BINARY--+---------------+---------+-----------------+-----------------------------+ | | | '-(--integer--)-' | | | | | '-+-BINARY VARYING-+--(--integer--)-' | | | | '-VARBINARY------' | | | | .-(--1M--)-------------. | | | '---+-BLOB----------------+----+----------------------+-' | | '-BINARY LARGE OBJECT-' '-(--integer--+---+--)-' | | +-K-+ | | +-M-+ | | '-G-' | +-+-DATE-------------------------+------------------------------------------------------+ | | .-(--0--)-. | | | +-TIME--+---------+------------+ | | | .-(--6--)-------. | | | '-TIMESTAMP--+---------------+-' | | '-(--integer--)-' | | .-(--200--)-----. | +---DATALINK--+---------------+--+--------------+---------------------------------------+ | '-(--integer--)-' '-ccsid-clause-' | +---ROWID-------------------------------------------------------------------------------+ '---XML---------------------------------------------------------------------------------' ccsid-clause |--CCSID--integer-----------------------------------------------|
説明
- ALIAS
- 別名のラベルであることを指定します。
別名のラベルは、システム・オブジェクト・テキストとして付加されます。
- alias-name
- ラベルを適用する別名を識別します。この名前は、現行サーバーに存 在している別名を識別していなければなりません。
- COLUMN
- 列のラベルであることを指定します。
列のラベルは、システム列見出しまたは列テキストとして付加され
ます。列見出しは、照会の結果を表示または印刷する場合に使用されます。
- table-name.column-name or view-name.column-name
- ラベルを適用する列を指定します。 表名 またはビュー名 は、現行サーバーにある表またはビューを示すものでなければなりませんが、宣言済み一時表を示すものであってはなりません。列名 は、その表またはビューの列を識別するものでなければなりません。
- TEXT
- IBM® i の列テキストを使用することを指定します。 TEXT を省略すると、列見出しが指定されます。
- CONSTRAINT
-
制約に対するラベルであることを指定します。
- constraint-name
- ラベルを適用する制約を識別します。 constraint-name は、現行サーバーに存在する制約を識別する必要があります。
- FUNCTION または SPECIFIC FUNCTION
- ラベルの適用対象である関数を識別します。この関数は現行サーバーに存在していなければならず、ユーザー定義関数である必要があります。
関数は、それぞれその名前、関数シグニチャー、あるいは特定名によって識別することができます。
- FUNCTION function-name
- 関数を名前によって識別します。 function-name は厳密に 1 つの関数を示す必要があります。この関数には、パラメーター をいくつでも定義することができます。指定されたスキーマまたは暗黙のスキーマの中に、指定された名前 の関数が複数ある場合、エラーが戻されます。
- FUNCTION function-name (parameter-type, ...)
- 関数を一意的に識別する関数シグニチャーによって、関数を識別します。
function-name
(parameter-type,...) は、指定された関数シグニチャーを持つ関数を識別しなければなりません。
指定されたパラメーターは、関数の作成時に指定された、
対応する位置にあるデータ・タイプと一致していなければなりません。
ラベルを付ける関数インスタンスを識別するには、データ・タイプの数とデータ・タイプの論理連結を使用します。データ・タイプの同義語は、一致として扱われます。
デフォルトがあるパラメーターは、このシグニチャーに含まれていなければなりません。
function-name () を指定する場合、識別される関数にパラメーターを使用することはできません。
- function-name
- 関数の名前を識別します。
- (parameter-type, ...)
- 関数のパラメーターを識別します。
非修飾の特殊タイプ名を指定する場合、データベース・マネージャーはその特殊タイプのスキーマ名を解決するための SQL パスを検索します。
長さ属性、精度属性、あるいは位取り属性があるデータ・タイプの場合、以下のいずれかを使用します。
- 空の括弧は、データベース・マネージャーがデータ・タイプの一致の判別に際して属性を無視することを示します。例えば、DEC() は、DEC(7,2) のデータ・タイプで定義された関数のパラメーターに一致するものとみなされます。 ただし、FLOAT に空の括弧を指定することはできません。これは、そのパラメーター値が特定のデータ・タイプ (REAL または DOUBLE) を示しているからです。
- 長さ属性、精度属性、あるいは位取り属性に特定の値を指定した場合、 その値は、CREATE FUNCTION ステートメントの中で暗黙的または明示的に指定された値と正確に一致している必要があります。 データ・タイプが FLOAT の場合、 突き合わせはデータ・タイプ (REAL または DOUBLE) に基づいて行われるので、 精度は指定された値に厳密に一致している必要はありません。
- 長さ属性、精度属性、または位取り属性が明示的に指定されておらず、空の括弧も指定されていない場合、該当のデータ・タイプのデフォルト属性が暗黙指定されます。暗黙の長さは、CREATE FUNCTION ステートメントの中で暗黙的または明示的に指定さ れた値と正確に一致している必要があります。
FOR DATA 文節または CCSID 文節の指定はオプショナルです。 いずれの文節も指定しないと、データ・タイプが一致するかどうかを判定する場合に、データベース・マネージャーが属性を無視することを示します。 どちらか一方の文節を指定する場合は、CREATE FUNCTION ステートメントに 暗黙的または明示的に指定されている値と一致させる必要があります。
- AS LOCATOR
- 関数が、このパラメーターのロケーターを受け取るように定義されることを示します。 AS LOCATOR を指定する場合は、データ・タイプは LOB または XML、あるいは LOB または XML に基づく特殊タイプでなければなりません。 AS LOCATOR を指定した場合、FOR SBCS DATA または FOR MIXED DATA を指定してはなりません。
- SPECIFIC FUNCTION specific-name
- 関数を特定名によって識別します。 specific-name は、現行サーバーに存在する特定の関数を示している必要があります。
- INDEX
- 索引のラベルであることを指定します。
索引のラベルは、システム・オブジェクト・テキストとして付加されます。
- index-name
- ラベルを適用する索引を識別します。 この名前は、現行サーバーに存在している索引を識別していなければなりません。
- MASK
- マスクのラベルであることを指定します。
- mask-name
- ラベルを適用するマスクを指定します。 この名前は、現行サーバーに存在するマスクを示している必要があります。
- PACKAGE
- パッケージのラベルであることを指定します。
パッケージのラベルは、システム・オブジェクト・テキストとして付加
されます。
- package-name
- ラベルを適用するパッケージを識別します。この名前は、 現行サーバーに存在しているパッケージを識別していなければなりません。
- VERSION version-id
- バージョン ID は、作成時にパッケージに割り当てられたバージョン ID です。 バージョン ID を指定しない場合、バージョン ID として NULL ストリングが使用されます。
- PERMISSION
- 許可のラベルであることを指定します。
- permission-name
- ラベルを適用する権限を指定します。 この名前は、現行サーバーに存在する許可を示すものでなければなりません。
- PROCEDURE または SPECIFIC PROCEDURE
- ラベルを適用するプロシージャーを識別します。このプロシージャー名 は、現行サーバーに存在しているプロシージャーを識別していなければなりません。
- PROCEDURE procedure-name
- プロシージャーを名前によって識別します。 プロシージャー名 は、ただ 1 つのプロシージャーを識別していなければなりません。 このプロシージャーには、パラメーターをいくつでも定義することができます。 指定されたスキーマまたは暗黙のスキーマの中に、 指定された名前のプロシージャーが複数ある場合、エラーが戻されます。
- PROCEDURE procedure-name (parameter-type, ...)
- プロシージャーを一意的に識別するプロシージャー・シグニチャーによって、プロシージャーを識別します。
procedure-name (parameter-type,...) では、指定されたプロシージャー・シグニチャーを持つプロシージャーを識別する必要があります。
指定されたパラメーターは、プロシージャーの作成時に指定された、
対応する位置にあるデータ・タイプと一致していなければなりません。
ラベルを付ける対象のプロシージャー・インスタンスを識別するには、データ・タイプの数とデータ・タイプの論理連結を使用します。データ・タイプの同義語は、一致として扱われます。
デフォルトがあるパラメーターは、このシグニチャーに含まれていなければなりません。
プロシージャー名 () を指定する場合、識別されるプロシージャー にパラメーターを使用することはできません。
- procedure-name
- プロシージャーの名前を識別します。
- (parameter-type, ...)
- プロシージャーのパラメーターを識別します。
非修飾の特殊タイプ名または配列タイプ名を指定する場合、データベース・マネージャーはその特殊タイプまたは配列タイプのスキーマ名を解決するための SQL パスを検索します。
長さ属性、精度属性、あるいは位取り属性があるデータ・タイプの場合、以下のいずれかを使用します。
- 空の括弧は、データベース・マネージャーがデータ・タイプの一致の判別に際して属性を無視することを示します。例えば、DEC() は、DEC(7,2) のデータ・タイプで定義されたプロシージャーのパラメーターに一致するものとみなされます。 ただし、FLOAT に空の括弧を指定することはできません。これは、そのパラメーター値が特定のデータ・タイプ (REAL または DOUBLE) を示しているからです。
- 長さ属性、精度属性、あるいは位取り属性に特定の値を指定する場合、その値は、 CREATE PROCEDURE ステートメントの中で暗黙的または明示的に指定された値と正確に一致している必要があります。 データ・タイプが FLOAT の場合、 突き合わせはデータ・タイプ (REAL または DOUBLE) に基づいて行われるので、 精度は指定された値に厳密に一致している必要はありません。
- 長さ属性、精度属性、または位取り属性が明示的に指定されておらず、空の括弧も指定されていない場合、該当のデータ・タイプのデフォルト属性が暗黙指定されます。暗黙の長さは、CREATE PROCEDURE ステートメントの中で暗黙的または明示的 に指定された値と正確に一致している必要があります。
FOR DATA 文節または CCSID 文節の指定はオプショナルです。 いずれの文節も指定しないと、データ・タイプが一致するかどうかを判定する場合に、データベース・マネージャーが属性を無視することを示します。 どちらか一方の文節を指定する場合は、CREATE PROCEDURE ステートメントに 暗黙的または明示的に指定されている値と一致させる必要があります。
- AS LOCATOR
- プロシージャーが、このパラメーターのロケーターを受け取るように定義されることを示します。 AS LOCATOR を指定する場合は、データ・タイプは LOB または XML、あるいは LOB または XML に基づく特殊タイプでなければなりません。 AS LOCATOR を指定した場合、FOR SBCS DATA または FOR MIXED DATA を指定してはなりません。
- SPECIFIC PROCEDURE specific-name
- プロシージャーを特定名によって識別します。 特定名 は、現行サーバーに存在してい る特定のプロシージャーを識別していなければなりません。
- SEQUENCE
- シーケンスのラベルであることを指定します。
シーケンスのラベルは、システム・オブジェクト・テキストとして付加されます。
- sequence-name
- シーケンスを識別します。ここで指定した表またはビューに関するラベルが追加されます。 シーケンス名 は、現行サーバーに存在するシーケンスを示すものでなければなりません。
- TABLE
- 表またはビューのラベルであることを指定します。
表またはビューのラベルは、システム・オブジェクト・テキストとして
付加されます。
- table-name または view-name
- 表またはビューを識別します。ここで指定した表またはビューに関するラベルが追加されます。 表名 またはビュー名 は、現行サーバーにある表またはビューを示すものでなければなりませんが、宣言済み一時表を示すものであってはなりません。
- TRIGGER
-
トリガーに対するラベルであることを指定します。
- trigger-name
- ラベルを追加したいトリガーを識別します。トリガー名 は、現行サーバーに存在して いるトリガーを識別していなければなりません。
- TYPE distinct-type-name または array-type-name
- ラベルを適用する特殊タイプまたは配列タイプを識別します。特殊タイプ名 または 配列タイプ名 は、現行サーバーに存在するタイプを示すものでなければなりません。
- VARIABLE variable-name
- ラベルを適用する変数を識別します。この変数名 は、現行サーバーに存在している変数を識別していなければなりません。
- XSROBJECT xsrobject-name
- ラベルを適用する XSR オブジェクトを識別します。このXSR オブジェクト名 は、現行サーバーに存在しているXSR オブジェクトを示すものでなければなりません。
- IS
- この後に、付加したいラベルを指定します。
- string-constant
- 列の見出しの場合は、60 バイトまでの長さ、オブジェクト・テキストまたは列のテキストの場合は、50 バイトまでの長さであればどのような SQL 文字ストリング定数でも構いません。この定数には、1 バイト文字および 2 バイト文字を入れることができます。
列見出しとしてのラベルは、 20 バイトまでの 3 つの部分 (セグメント) から構成されています。対話式 SQL、Query for IBM i、IBM DB2® Query Manager and SQL Development Kit for i、およびその他のプロダクトによって、各 20 バイトのセグメントをそれぞれ別の行に表示または印刷することができます。列のラベルに混合データが使用される場合、20 バイトのそれぞれのセグメントは、 有効な混合データ文字ストリングでなければなりません。シフト文字は、 20 バイトのセグメントの中で対になっていなければなりません。
注
列見出し: 列見出しは、照会の結果を表示または印刷する場合に使用されます。 最初の列見出しは最初の行に、2 番目の列見出しは 2 行目に、3 番目の列見出しは 3 行目に、 それぞれ表示または印刷されます。列見出しは最高 60 バイトまでですが、最初の 20 バイトが最初の列見出し、 2 番目の 20 バイトが 2 番目の列見出し、3 番目の 20 バイトが 3 番目の列見出しになります。 ブランクは、それぞれの 20 バイトの列見出しの終わりから削除されます。
列見出し情報の 60 バイトすべてがカタログ・ビュー SYSCOLUMNS で使用可能です。 ただし、DESCRIBE または DESCRIBE TABLE ステートメントの SQLDA で戻されるのは、最初の列見出しだけです。
DESCRIBE または DESCRIBE TABLE ステートメントでは、列テキストが戻されません。データベース・マネージャーが、 共用されているレコード様式の記述の列見出しの情報を変更すると、その変更は、 その様式の記述を共用するすべてのファイルに反映されます。 ファイルが他のファイルと様式を共用しているかどうかを調べるには、 CL コマンドのデータベース関係表示 (DSPDBR) の RCDFMT パラメーターを使用します。
代替構文: 以下のキーワードは、旧リリースとの互換性を維持するためにサポートされている同義語です。 これらのキーワードは標準キーワードではないので、原則として使用しないようにしてください。
- PACKAGE の同義語として、キーワード PROGRAM を使用することができます。
- キーワード DATA TYPE または DISTINCT TYPE を TYPE の同義語として使用することができます。
例
例 1: 表 DEPARTMENT の DEPTNO 列にラベルを付けます。
LABEL ON COLUMN DEPARTMENT.DEPTNO
IS 'DEPARTMENT NUMBER'
例 2: 列見出しが 2 行に表示されている、表 DEPARTMENT の列 DEPTNO にラベルを付けます。
LABEL ON COLUMN DEPARTMENT.DEPTNO
IS 'Department Number'
例 3: パッケージ PAYROLL にラベルを付けます。
LABEL ON PACKAGE PAYROLL
IS 'Payroll Package'