Databases and ArcGIS

You can connect to spatial or nonspatial data in a supported database from ArcGIS Pro to do the following:

If you need to extend your database to include such functionality as networks, topologies, attachments, or archiving and you use one of the following database types, you can enable a geodatabase in the database.

To access nonspatial data in databases that ArcGIS doesn't directly support, see Work with OLE DB connections.

Visualize data

Once you connect to your database from ArcGIS, you can view spatial data in a map by dragging the table from your database connection to the map. If necessary, define a unique identifier, spatial reference, and geometry type for spatial tables you add to the map.

When you drag a spatial table (feature class) from most supported databases onto a map, ArcGIS creates a query layer. The query layer definition includes all columns of supported data types. ArcGIS uses the first row of the table to determine the geometry type (point, multipoint, line, or polygon), spatial reference, and dimensionality (that is, 2D or 3D). If you don't want to use those properties—for example, if you want to display the three-dimensional records in the table, but the first record is two dimensional—you can alter the query layer definition.

Supported data types

To use data with ArcGIS, the data types in your database table must map to those supported by ArcGIS. If your table contains data types that ArcGIS does not support, ArcGIS does not display the unsupported columns. When you move tables between databases or between databases and geodatabases using ArcGIS, unsupported data types are not included in the destination database. See DBMS data types supported in ArcGIS for a list of supported data types per database management system.

Analyze data

Many geoprocessing tools can be used to analyze data in a database. Just be aware that if the tool adds records to an existing table, the table must contain a unique identifier that is maintained by the database.

When doing spatial analysis on large feature classes, though, it may be more efficient to write queries that use the database's native SQL functions in the query layer interface. These queries are processed in the database.

Filter data

You can write database SQL queries in the query layer interface to filter the data returned in the map.

If you want the filter to persist outside of the map or project, create a view on tables in your database. You can create a view by running the Create Database View geoprocessing tool in a Python script or define a view directly in the database using SQL.

Manage data

There are a number of tools available in ArcGIS that allow you to manage data in a database.

Grant and revoke privileges on database tables

Table owners can use the Privileges dialog box or the Change Privileges geoprocessing tool to grant privileges to or revoke them from other database users or roles. See Grant and revoke dataset privileges for instructions.

Manage indexes and statistics

You can use the Rebuild Indexes and Analyze Datasets tools to re-create indexes and update database statistics for the tables you own in the database.

Note that SAP HANA does not have user-created indexes; therefore, you would not run Rebuild Indexes on tables in SAP HANA.

Alter the schema of database tables

You can add fields to or drop fields from tables you own in the database from the Fields tab of the Table Properties or Feature Class Properties dialog box.

Rename tables

If your database management system allows it, you can change the name of an existing database table.

Add data

You can use tools in ArcGIS to create tables and load data from other data sources into your database. Options for creating tables and loading data using ArcGIS include the following:

*Cannot be used with tables that do not contain a unique identifier that is maintained by the database.

Note that to create tables or feature classes in the database requires you to connect to the database as a user with privileges to create database objects. The database administrator can use SQL to create users and grant the required privileges, or run the Create Database User geoprocessing tool to create a user that has privileges sufficient to create database objects for those databases the tool supports.

Publish data

If you have a stand-alone or federated ArcGIS GIS Server site, once you author a map that contains database data, you can publish a map image layer so other people can access your map over the web. If the GIS Server site is federated with an ArcGIS Enterprise portal, a map image layer item is added to the portal.

To allow other people to edit your data, publish a web feature layer.

Edit data

You cannot connect directly to most supported databases* from ArcGIS Pro and edit the data. To edit database data, you must publish it.

If you have a GIS Server site federated with an ArcGIS Enterprise portal, publish a web feature layer that references your source data. This creates a feature layer item in the portal that you can share with groups whose members need to edit the data. Set the level of editing you want to allow through the web feature layer.

If you have a stand-alone GIS Server site, publish a map service with feature capabilities enabled, enable editing on the service, and give people access to it so they can edit the data.

*The exceptions are SQLite databases and OGC GeoPackage files. You can add feature classes and tables from these files to a map and edit the data directly.

Enable geodatabase functionality

You might decide at some point that you need geodatabase functionality in your database, such as topology, networks, or versioned editing. You can create a geodatabase administrator user, and, while connected to the database as that user, you can enable a geodatabase in those databases in which it is supported. This creates the system tables, types, procedures, and functions needed to use a geodatabase.

Once you have enabled a geodatabase in the database, any new tables or feature classes you add through ArcGIS are automatically registered with the geodatabase. You can also register existing database tables with the geodatabase, or you can leave them unregistered and still access them through ArcGIS.