原文はこちら。
https://blogs.oracle.com/oraclespatial/better-support-for-timestamp-with-zone-in-the-latest-oracle-spatial-and-graph-property-graph-patch
Oracle Spatial and Graph Property Graph機能のパッチがリリースされました。これには、PGX 3.1と最新のData Access Layerが含まれています。1つの重要な修正は、タイムゾーン付きタイムスタンプのサポートが向上したことです。
以下は改善点を説明する簡単な例です。
https://blogs.oracle.com/oraclespatial/better-support-for-timestamp-with-zone-in-the-latest-oracle-spatial-and-graph-property-graph-patch
Oracle Spatial and Graph Property Graph機能のパッチがリリースされました。これには、PGX 3.1と最新のData Access Layerが含まれています。1つの重要な修正は、タイムゾーン付きタイムスタンプのサポートが向上したことです。
以下は改善点を説明する簡単な例です。
上記のcfg = GraphConfigBuilder.forPropertyGraphRdbms()
.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl122")
.setUsername("pg")
.setPassword("<YOUR_PASSWORD>")
.setName("test_graph")
.setMaxNumConnections(2)
.setLoadEdgeLabel(false)
.addVertexProperty("ts", PropertyType.TIMESTAMP_WITH_TIMEZONE, null)
.addVertexProperty("name", PropertyType.STRING, "default_name")
.addEdgeProperty("cost", PropertyType.DOUBLE, "1000000")
.build();
opg = OraclePropertyGraph.getInstance(cfg);
v=opg.addVertex(10000l);
v.setProperty("ts", new Date(1000l));
opg.commit()
v=opg.getVertex(10000l);
==>Vertex ID 10000 [vertex] {ts:dat:1969-12-31 16:00:01.0}
getVertex
はjava.util.Date
型のプロパティを返します(java.sql.Timestamp
はjava.util.Date
のサブクラス)。では、このグラフをリモートのPGXエンドポイントに読み込みましょう。OSG PGの旧バージョンでは、以下の例外が発生する場合があります。pgxSession=Pgx.getInstance("http://127.0.0.1:7007").createSession("session1");
analyst=pgxSession.createAnalyst();
pgxGraph = pgxSession.readGraphWithProperties(opg.getConfig(), true);
このパッチを適用すると、もWith this new patch, the above will go through without a problem. To sanity check, run a simple PGQL query and print the type of the timestamp property ts."java.lang.UnsupportedOperationException: loading type time_with_timezone through DAL not yet supported"
pgxResultSet = pgxGraph.queryPgql("SELECT n.ts MATCH (n)")
elem=pgxResultSet.getResults()
e1=elem.iterator().next()
twz=e1.getTimestampWithTimezone(0)
==>1969-12-31T16:00:01Z
twz.getClass().getName()
==>java.time.OffsetDateTime
References:
Patch 28577866: MISSING LATEST PGX 3.1.X FUNCTIONS IN ORACLE 12.2 AND 18.1 (28577866)
https://support.oracle.com/rs?type=patch&id=28577866