CÓMO
En algunos casos, es posible que desee acceder a clases de entidad o tablas en un sistema de administración de base de datos diferente para utilizarlas al crear reglas de atributos. Por ejemplo, es posible que desee escribir una regla de cálculo para rellenar un campo de dirección en una clase de entidad de punto que muestre la ubicación de las farmacias. La información de dirección se obtendrá de otra clase de entidad que resida en una base de datos diferente. Una forma de lograr este objetivo es establecer vínculos de base de datos entre los dos data stores, lo que proporciona una forma de acceder y consultar clases de entidad. Tenga en cuenta que el establecimiento de vínculos de base de datos varía entre los distintos sistemas de administración de base de datos.
En este artículo, creamos un vínculo de base de datos entre Microsoft SQL Server y PostgreSQL para usar una clase de entidad (Pharmacies_Tamale) en una regla de atributos. Esta clase de entidad desempeña un papel crucial a la hora de aportar la información necesaria para la regla. En este ejemplo se utiliza una geodatabase corporativa en la base de datos de SQL Server como entorno de trabajo y una geodatabase en PostgreSQL que contiene una clase de entidad ST_Geometry (Pharmacies_Tamale) a la que se puede acceder y que se puede utilizar en la regla.


-- Setting work environment Use sqlDatabase Go -- Creating a view Create view DataAdmin.vw_pharmacies_tamale as select objectid, name, location, type, class, address, globalid, geometry::STGeomFromText(st_astext, 32630) AS Shape -- rebuilding geometry From OPENQUERY( [LINK_TO_POSTGRESQL], 'Select objectid, name, location, type, class, address, globalid, ST_AsText(shape)::text as st_astext -- converting from st_geometry to WKT from pg_database.editor.pharmacies_tamale')

Note: PostgreSQL and SQL Server store geometry data using different spatial types. Hence, to access a geometric object from PostgreSQL in SQL Server, we first converted it to the Well-Known Text (WKT) format.
La siguiente sintaxis representa la conversión de ST_Geometry a WKT:
ST_AsText(shape)::text as st_astext
Después de convertir la geometría a WKT, se reconstruyó en SQL Server con la siguiente sintaxis:
Geometry::STGeomFromText(st_astext, 32630) AS Shape
Además, el método OPENQUERY en la definición de SQL nos permite ejecutar una consulta de paso a través en un servidor vinculado específico.
var pharma = FeatureSetByName($datastore,"DataAdmin.vw_pharmacies_tamale", ["Address"])
var closestpharma = Intersects(pharma, BufferGeodetic($feature, "1000", "feet"))
var Fpharma = First(closestpharma)
//var Npharma = NearestCoordinate(Fpharma, $feature)
if (Fpharma == null) return {"errormessage": "no pharmacies are closeby"}
return Fpharma.Address

En este artículo hemos analizado cómo crear una vista en una base de datos de SQL Server que haga referencia a una clase de entidad de una base de datos en otra fuente de datos (PostgreSQL). Después de registrar la vista en la base de datos, pudimos hacer referencia a la vista a través de una expresión de Arcade al configurar una regla de atributos para generar información basada en los atributos de la clase de entidad en PostgreSQL.
Id. de artículo: 000032325
Obtener ayuda de expertos en ArcGIS
Empieza a chatear ahora