<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: JSON columns in ArcSDE (Oracle) in Geodatabase Questions</title>
    <link>https://community.esri.com/t5/geodatabase-questions/json-columns-in-arcsde-oracle/m-p/821737#M3775</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When DBMS objects are participating in Esri's geodatabase model, I always discourage changing underlying DBMS functionality outside of Esri's tools. What you are asking about is technically possible, and likely won't abjectly break the geodatabase, but it raises lots of questions that should be considered before making such a change.&amp;nbsp; For example, how will the clients react to an Oracle error message (say a user doesn't input JSON) they are not expecting?&amp;nbsp; Also, if the feature class is versioned, do you know how to add the same constraint to all of the system tables (add/delete tables, etc...) that are involved in versioning that feature class?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At a minimum, you should have a very good understanding of the implementation details of the geodatabase model and the DBMS functionality if you are going to try something like you suggest.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 02 Sep 2019 14:18:39 GMT</pubDate>
    <dc:creator>JoshuaBixby</dc:creator>
    <dc:date>2019-09-02T14:18:39Z</dc:date>
    <item>
      <title>JSON columns in ArcSDE (Oracle)</title>
      <link>https://community.esri.com/t5/geodatabase-questions/json-columns-in-arcsde-oracle/m-p/821736#M3774</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are there any recommendations about using JSON columns in ArcSDE&amp;nbsp; (Oracle)?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;In Oracle Database, JSON data is stored using the common SQL data types&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;CODE class="" style="color: #333333; background-color: #ffffff;"&gt;VARCHAR2&lt;/CODE&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;CODE class="" style="color: #333333; background-color: #ffffff;"&gt;CLOB&lt;/CODE&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;CODE class="" style="color: #333333; background-color: #ffffff;"&gt;BLOB&lt;/CODE&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;With the check constraint&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class=""&gt;is json&lt;/CODE&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;on this column you tell Oracle that you will store json.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;I&amp;nbsp;guess that you can create a featureclass in Oracle with python, and add this check constraint afterwards. Would that work?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;I am aware that there are lots of issues with storing and querying json in relational databases as you can read here:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;A class="link-titled" href="https://www.thomascerqueus.fr/json-fields-relational-databases-postgresql/" title="https://www.thomascerqueus.fr/json-fields-relational-databases-postgresql/"&gt;Why JSON fields shouldn’t be used in relational databases – Thomas Cerqueus&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;But are there any issues concerning ArcSDE which would make ArcSDE slower or reducing functionality?&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;bye, Nicole&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Sep 2019 09:49:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/geodatabase-questions/json-columns-in-arcsde-oracle/m-p/821736#M3774</guid>
      <dc:creator>NicoleSulzberger</dc:creator>
      <dc:date>2019-09-02T09:49:35Z</dc:date>
    </item>
    <item>
      <title>Re: JSON columns in ArcSDE (Oracle)</title>
      <link>https://community.esri.com/t5/geodatabase-questions/json-columns-in-arcsde-oracle/m-p/821737#M3775</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When DBMS objects are participating in Esri's geodatabase model, I always discourage changing underlying DBMS functionality outside of Esri's tools. What you are asking about is technically possible, and likely won't abjectly break the geodatabase, but it raises lots of questions that should be considered before making such a change.&amp;nbsp; For example, how will the clients react to an Oracle error message (say a user doesn't input JSON) they are not expecting?&amp;nbsp; Also, if the feature class is versioned, do you know how to add the same constraint to all of the system tables (add/delete tables, etc...) that are involved in versioning that feature class?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At a minimum, you should have a very good understanding of the implementation details of the geodatabase model and the DBMS functionality if you are going to try something like you suggest.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Sep 2019 14:18:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/geodatabase-questions/json-columns-in-arcsde-oracle/m-p/821737#M3775</guid>
      <dc:creator>JoshuaBixby</dc:creator>
      <dc:date>2019-09-02T14:18:39Z</dc:date>
    </item>
    <item>
      <title>Re: JSON columns in ArcSDE (Oracle)</title>
      <link>https://community.esri.com/t5/geodatabase-questions/json-columns-in-arcsde-oracle/m-p/821738#M3776</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot Joshua, these are clearly issues I have to think about properly.&amp;nbsp;&lt;/P&gt;&lt;P&gt;We are having full control about the clients using the ArcGIS Server APIs, so invalid JSON input should be manageable.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We haven't planned using versioning or archiving yet, but in future this could be the case.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Sep 2019 11:10:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/geodatabase-questions/json-columns-in-arcsde-oracle/m-p/821738#M3776</guid>
      <dc:creator>NicoleSulzberger</dc:creator>
      <dc:date>2019-09-03T11:10:03Z</dc:date>
    </item>
  </channel>
</rss>

