- Ajaxコールで検索のサーバー・エラーORA-40556: 2つのJSON_TABLE式のチェーンはサポートされていませんが返されました。
select C_ID2,
C_ID,
C_TYPE,
TITLE_EN,
TITLE_JA,
TITLE_JA_HRKT,
DC_DATE,
GEO_LAT,
C_CONTEXT,
DC_TITLE,
GEO_LONG,
C_METADATA_ETAG,
ODPT_KANA,
ODPT_NOTE,
OWL_SAMEAS,
replace(replace(replace(replace(json_serialize(ODPT_OPERATOR returning clob),'['),']'),'odpt.Operator:'),'"') ODPT_OPERATOR,
ODPT_PLATFORMNUMBER,
replace(replace(replace(replace(json_serialize(ODPT_BUSROUTEPATTERN returning clob),'['),']'),'odpt.BusroutePattern:'),'"') ODPT_BUSROUTEPATTERN,
ODPT_BUSSTOPPOLENUMBER,
replace(replace(replace(replace(json_serialize(ODPT_BUSSTOPPOLETIMETABLE returning clob),'['),']'),'odpt.BusstopPoleTimetable:'),'"') ODPT_BUSSTOPPOLETIMETABLE
from #APEX$SOURCE_DATA#
% podman exec -it apex-ords bash
[oracle@apex ords]$
ords --config /etc/ords/config config set mongo.enabled true
[oracle@apex ords]$ ords --config /etc/ords/config config set mongo.enabled true
ORDS: Release 24.4 Production on Thu Feb 20 08:41:10 2025
Copyright (c) 2010, 2025, Oracle.
Configuration:
/etc/ords/config
The global setting named: mongo.enabled was set to: true
[oracle@apex ords]$
今回は必要ないので、TLS接続を無効にします。
ords --config /etc/ords/config config set mongo.tls false
[oracle@apex ords]$ ords --config /etc/ords/config config set mongo.tls false
ORDS: Release 24.4 Production on Thu Feb 20 08:42:44 2025
Copyright (c) 2010, 2025, Oracle.
Configuration:
/etc/ords/config
The global setting named: mongo.tls was set to: false
[oracle@apex ords]$
spec:
containers:
- env:
image: container-registry.oracle.com/database/free:latest
name: db
ports:
- containerPort: 1521
hostPort: 1521
- containerPort: 8181
hostPort: 8181
- containerPort: 8443
hostPort: 8443
- containerPort: 27017
hostPort: 27017
securityContext: {}
volumeMounts:
- mountPath: /opt/oracle/oradata
name: oradata-pvc
ポッドapexを作り直します。データベースのデータやORDSの設定は、それぞれボリュームoradataおよびords_configに含まれているため、ポッドを作り直しても以前の状態は維持されます。
apex-podman-setup% podman pod stop apex
apex
apex-podman-setup% podman pod rm apex
5a5ecf14277eabbfc88a420b8b7b2661baf249dc33065ee65328dbd722677d2b
apex-podman-setup % podman play kube apex.yaml
Pod:
ca2a3b6cf7fe45a3888cc9b6e062847e047a8c20d00f3d240f390b6da2c7a022
Containers:
abd925c7d9b30709b296841f761d3c6c086a728efe352c39d0dfab60229bac3f
c3f18d46b14ba32f3088cc5a5ed433d68b4c5d4d1ff01a88fb8514d5b835129e
apex-podman-setup % podman pod ps
POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS
ca2a3b6cf7fe apex Running About a minute ago e726c524be3c 3
apex-podman-setup %
データベースにSYSで接続し、APEXのワークスペース・スキーマにロールSODA_APPをグラントします。
QL> grant soda_app to wksp_apexdev;
Grantが正常に実行されました。
SQL>
mongosh 'mongodb://[APEXワークスペース・スキーマ]:[パスワード]@localhost:27017/[APEXワークスペース・スキーマ]?authMechanism=PLAIN&authSource=$external&tls=false&retryWrites=false&loadBalanced=true'
% mongosh 'mongodb://wksp_apexdev:*******@localhost:27017/wksp_apexdev?authMechanism=PLAIN&authSource=$external&tls=false&retryWrites=false&loadBalanced=true'
Current Mongosh Log ID: 67b6ee2a57ecb55b5c2d949b
Connecting to: mongodb://<credentials>@localhost:27017/wksp_apexdev?authMechanism=PLAIN&authSource=%24external&tls=false&retryWrites=false&loadBalanced=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.3.9
Using MongoDB: 4.2.14
Using Mongosh: 2.3.9
For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/
wksp_apexdev>
コレクションtokyo_bus_stopsに含まれるドキュメントの件数を確認します。
wksp_apexdev> db.tokyo_bus_stops.countDocuments()
3721
wksp_apexdev>
先頭行を表示してみます。
wksp_apexdev> db.tokyo_bus_stops.findOne()
{
_id: ObjectId('67b6cb450eb8ab046f777c62'),
title: { en: 'JA Nishi-Tokyo', ja: 'JA西東京前', 'ja-Hrkt': 'じぇいえいにしとうきょうまえ' },
'odpt:busroutePattern': [
'odpt.BusroutePattern:Toei.Ume77Kou.28601.2',
'odpt.BusroutePattern:Toei.Ume77Kou.28602.2',
'odpt.BusroutePattern:Toei.Ume77Kou.28603.2',
'odpt.BusroutePattern:Toei.Ume77Kou.28606.4'
],
'odpt:busstopPoleNumber': '2',
'odpt:note': 'JA西東京前',
'owl:sameAs': 'odpt.BusstopPole:Toei.JANishiTokyo.323.2',
'@id': 'urn:ucode:_00001C0000000000000100000330C26C',
'odpt:operator': [ 'odpt.Operator:Toei' ],
'@context': 'http://vocab.odpt.org/context_odpt_BusstopPole.jsonld',
'@type': 'odpt:BusstopPole',
'dc:date': '2025-02-07T03:01:09+09:00',
'odpt:kana': 'じぇいえいにしとうきょうまえ',
'odpt:busstopPoleTimetable': [
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.KabeStationKitaguchi.25-100',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.KabeStationKitaguchi.25-160',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.KabeStationKitaguchi.25-170',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.OmeShako.25-100',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.OmeShako.25-160',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.OmeShako.25-170',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.OmeStation.25-100',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.OmeStation.25-160',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.OmeStation.25-170',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.Urajukucho.25-100',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.Urajukucho.25-160',
'odpt.BusstopPoleTimetable:Toei.Ume77Kou.JANishiTokyo.323.2.Urajukucho.25-170'
],
'dc:title': 'JA西東京前',
'geo:lat': 35.794155,
_metadata: { etag: Binary.createFromBase64('LoyZd3xjBG/gYwQAWQq48g==', 0) },
'geo:long': 139.291522
}
wksp_apexdev>
JSONコレクション表TOKYO_BUS_STOPSを、APEXからはJSONソースとして、そして、MongoDB互換APIからはコレクションtokyo_bus_stopsとしてアクセスできることを確認しました。