ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

Next_GlobalID

  • 定義
  • 構文
  • 戻り値のタイプ
  • 例

定義

Next_GlobalID は、ジオデータベースに登録されたテーブルを入力パラメーターとして受け取り、次の Global ID の値を返します。

SQL を使用してテーブルに行を挿入する場合に、この値を使用できます。

Global ID フィールドは、テーブルをジオデータベース レプリケーションまたはオフライン マッピングに含めることができるようにするために追加されます。

入力テーブルがジオデータベースに登録されていない場合、エラーが返されます。

構文

<geodatabase administrator schema>.next_globalid (<table owner>, <table name>)

ほとんどのジオデータベースでは、ジオデータベース管理者のスキーマは sde です。ただし、SQL Server の dbo スキーマ ジオデータベースの場合、このスキーマは dbo になり、Oracle のユーザー スキーマ ジオデータベースの場合、このスキーマはユーザーのスキーマ名になります。

戻り値のタイプ

String

例

以下の例は、Next_GlobalID をサポートしている各データベースでの使用例を示しています。

各データベースの例では、BUSE が所有する SITINGS テーブルにレコードを追加しています。また、Next_RowID を呼び出して ObjectID フィールドに値を挿入し、Next_GlobalID を呼び出して Global ID フィールドに値を挿入しています。

Db2

ジオデータベース テーブルには、NOT NULL 制約のある ObjectID フィールドが含まれています。そのため、まず値を取得し、その値を ObjectID フィールドに挿入する必要があります。以下の例では、次の RowID の値が ObjectID フィールド (698) に取得され、次に、この RowID の値と、Global ID フィールドに値を挿入するための Next_GlobalID 関数を含むレコードが、テーブルに挿入されています。

--Get the next ObjectID value.
CALL sde.next_rowid('BUSE', 'SITINGS', ?, ?, ?);
Value of output parameters
Parameter Name :   O_ROWID
Parameter Value :  698
Parameter Name :   O_MSGCODE
Parameter Value :  0
Parameter Name :   O_MESSAGE
Parameter Value :  Procedure successfully completed.
Return Status = 1
--Insert the ObjectID from the previous statement to the objectid field.
--Use the Next_GlobalID function to insert a value to the globalid field.
INSERT INTO buse.sitings (objectid, globalid, mon_type)
 VALUES (
  698,
  sde.next_globalid,
  'golem'
 );
The SQL command completed successfully

Oracle

Next_GlobalID ユーティリティを INSERT ステートメントに含めて、次に利用可能な ID 値を挿入できます。次の例では、値を ObjectID フィールドに挿入するために Next_RowID ユーティリティも使用しています。このフィールドはすべてのジオデータベース テーブルにあり、設定が必要です。

INSERT INTO buse.sitings (objectid, globalid, mon_type) VALUES (  sde.gdb_util.next_rowid('BUSE', 'SITINGS'),  sde.gdb_util.next_globalid,  'golem' );
1 row created

PostgreSQL

Next_GlobalID 関数を INSERT ステートメントに含めて、次に利用可能な ID 値を挿入できます。次の例では、値を ObjectID フィールドに挿入するために Next_RowID 関数も使用しています。このフィールドはすべてのジオデータベース テーブルにあり、設定が必要です。

INSERT INTO buse.sitings (objectid, globalid, mon_type) VALUES (  sde.next_rowid('buse', 'sitings'),  sde.next_globalid(),  'golem' );
Query returned successfully: 1 row affected, 109 ms execution time.

SQL Server

Next_GlobalID および Next_RowID はストアド プロシージャです。次の ID 値を取得するために、INSERT ステートメントの外部で実行する必要があります。どちらも、ジオデータベース管理者のスキーマに格納されます。次の例では、ジオデータベース管理者は sde です。これらのストアド プロシージャから返された値は、STINGS テーブルを更新するために INSERT ステートメントで使用されます。

--Get the next ObjectID value. DECLARE @oid int EXEC sde.next_rowid 'buse', 'sitings', @oid OUTPUT SELECT @oid "ObjectID value";
ObjectID value 98765
--Get the next global ID value. DECLARE @gid uniqueidentifier EXEC sde.next_globalid @gid OUTPUT SELECT @gid "ID value";
ID value 0D5D0605-8954-4A65-B86C-D2DA96C2D0C5
--Insert a row to the sitings table. INSERT INTO buse.sitings (objectid, globalid, mon_type) VALUES (  98765,  '0D5D0605-8954-4A65-B86C-D2DA96C2D0C5',  'golem'
 );
ヒント:

次のグローバル ID 値を、テーブルに挿入する前に取得しない場合は、「SQL Server のグローバル ID (GUID) 列に対する SQL による値の挿入」に示すように、SQL Server の newid() 関数を直接 INSERT ステートメントで使用できます。

関連トピック

  • GlobalID_Name
  • Db2 のグローバル ID (GUID) 列に対する SQL による値の挿入
  • Oracle のグローバル ID (GUID) 列に対する SQL による値の挿入
  • PostgreSQL のグローバル ID (GUID) 列に対する SQL による値の挿入

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2021 Esri. | プライバシー | リーガル