>>-NODENUMBER--(--column-name--)-------------------------------><
スキーマは SYSIBM です。
NODENUMBER 関数は、行の区分番号を戻します。 たとえば、SELECT 文節で使用すると、 SELECT ステートメントの結果の生成に使用された表の各行の区分番号を戻します。
変換変数および表に戻される区分番号は、区分化キー列の現行変換値から得られます。 たとえば、挿入前トリガーにおいて、新しい変換変数の現行値があれば、 関数は予定区分番号を戻します。 ただし、区分化キー列の値はそれ以後の挿入前トリガーによって変更される場合があります。 したがって、データベースに挿入される時点での行の最終区分番号は、 予定値とは異なるかもしれません。
引き数は、表の列の修飾された名前または無修飾の名前でなければなりません。 該当の列は、どのようなデータ・タイプであっても構いません。 44 column-name が視点の列を参照する場合、 その列の視点の式は基礎表の列を参照する必要があり、 その視点は削除可能でなければなりません。 ネストされているか、または共通の表式は、視点と同じ規則に従います。 削除可能な視点の定義については、注を参照してください。
NODENUMBER 関数によって区分番号が戻される特定の行 (または表) は、 この関数を使用する SQL ステートメントの文脈から判別されます。
結果のデータ・タイプは INTEGER であり、ヌル値にはなりません。 行レベルの情報が戻されるので、どの列が表に指定されるかに関係なく、結果は同じです。 db2nodes.cfg ファイルがない場合、結果は 0 になります。
NODENUMBER 関数は、複製された表、検査制約内、 または生成された列の定義で使用することはできません (SQLSTATE 42881)。
例:
SELECT COUNT(*) FROM DEPARTMENT D, EMPLOYEE E WHERE D.DEPTNO=E.WORKDEPT AND NODENUMBER(E.LASTNAME) <> NODENUMBER(D.DEPTNO)
SELECT * FROM DEPARTMENT D, EMPLOYEE E WHERE NODENUMBER(E.LASTNAME) = NODENUMBER(D.DEPTNO)
CREATE TRIGGER EMPINSLOGTRIG1 BEFORE INSERT ON EMPLOYEE REFERENCING NEW AW NEWTABLE FOR EACH MODE ROW MODE DB2SQL INSERT INTO EMPINSERTLOG1 VALUES(NEWTABLE.EMPNO, NODENUMBER(NEWTABLE.EMPNO))