SQL Developer for VS Codeを使用したDuality Viewsの構築 (2024/07/30)
SQL Developer for VS Codeを使用したDuality Viewsの構築 (2024/07/30)
長文になりますが、ご了承ください。でも、きっと読んでいただく価値はあると思います。楽しい話題ですから!
データベースから取得したJSONオブジェクトを開発者の友人に提供する必要があります。そのオブジェクトには、当社の部門情報と、次のような有用な情報が含まれています。
- 部門ID
- 部署名
- 従業員リスト
- 名前とともに
- および彼らの報酬情報
23aiを使えば、SQLやGraphQLを簡単に作成できます…
23aiを使えば、SQLやGraphQLを簡単に作成できます…

あるいは、VS CodeでSQL Dev拡張機能v24.2を使ってポイントアンドクリックで操作することもできます。
昨日、SQL Developer 用の VS Code 拡張機能をアップデートしました。今回の大きな新機能は、23ai の JSON リレーショナル デュアル ビューを操作するための、構築、編集、テスト、ドキュメント作成といった一連の便利なツールです。
だから、「新しくて刺激的な構文を苦労して解く」のではなく、ツールを活用してスムーズに作業を進められるのです!
ステップ1:23aiデータベースに接続する
これは23aiの新機能なので、利用するには新しい23aiデータベースが必要です。選択肢は以下のとおりです。
- Oracle Cloud (OCI Base および Autonomous)、Always Free Autonomousを含む
- ExadataまたはOracle Database Applianceについては、通常の場所を確認してください。
- 23ai Free、コンテナ、VirtualBox、LinuxまたはWindowsメディア
接続が完了したら、以下を探してください…
ステップ2:Duality Viewsツリーノードを右クリックします
私たちは「デュアリティ・ビルダー」を選びます。

ステップ3:あなたの「駆動」テーブルを見つけて追加します
2番目のボタンセットの一番上にある「ルートテーブルを追加」ボタンをクリックしてください。すると、画面右側にスライダーが表示されます。
「部門」を選択します。

ステップ4:いくつかの列を選択し、「許可」するものを決定します
「DEPARTMENT_NAME」を追加します。すると、デフォルトで「DEPARTMENT_ID」フィールドが選択されていることに気づくでしょう。これは、オブジェクトの_ID JSON属性に必須の値を指定するために、主キー値が必要だからです。

左上には図表パネルがあります。拡大縮小したり、オブジェクトをドラッグして移動したりできます。データ変数に含める列を選択または選択解除することもできます。
図の下には、機能がまとめて配置されています。
定義:デフォルトでは、データ変数を作成するためのGraphQL構文がありますが、「GraphQLフォーム」ボックスのチェックを外すと、次のような「通常のDDL」が得られます。

テストクエリ:これがMVP(最も価値のある部分)になるかもしれません!ポイント&クリック操作でデータ変数を試すことができます。「試す」とは、実際にデータ変数を作成しなくても、作成した場合にデータ変数が返す値をクエリできるという意味です。

ええ、今のところはかなり退屈なオブジェクトですが、いくつか注目すべき点があります。実行されている「テストクエリ」コードを見てみましょう。
SELECT JSON {
'_id' : d.DEPARTMENT_ID,
'departmentName' : d.DEPARTMENT_NAME,
'employees' :
[ SELECT JSON {
'employeeId' : e.EMPLOYEE_ID,
'name' : {
'first' : e.FIRST_NAME,
'last' : e.LAST_NAME
},
'startedOn' : e.HIRE_DATE,
'compensation' : {
'salary' : e.SALARY,
'comm' : e.COMMISSION_PCT
}
}
FROM EMPLOYEES e
WHERE e.DEPARTMENT_ID = d.DEPARTMENT_ID
]
} AS dv_data
FROM DEPARTMENTS d
;すべての Duality ビューには、オブジェクトを一意に識別する _id 属性があります。そのため、DEPARTMENTS.DEPARTMENT_ID に対してクエリを実行し、それを '_id' にキャストします。次に、employees に対してネストされた呼び出しを行い、再び JSON にキャストします。いずれにせよ、Duality ビューを実際に作成する前に、その外観を確認できます。
データが返ってきたら、行を右クリックして「単一レコードビュー(SRV)」を要求できます。SRVはJSONオブジェクトを自動的に整形して、人間が読みやすい形式にします。
Duality Viewの「デザイン」に変更を加える際には、「テストクエリ」機能についても定期的に取り上げていきます。
DVプロパティ(右上):ここでは、DVを選択してプロパティを設定したり、基となる属性を選択して同様の操作を行うことができます。これについては後ほど詳しく説明します。
ステップ5:従業員の追加
これは可能です。なぜなら、EMPLOYEES テーブルには、DEPARTMENT_ID をたどって DEPARTMENTS テーブルにリンクする外部キー制約があるからです。
そこで、「子テーブルを追加」ボタンをクリックすると…

新しいテーブルと列が追加されたら、プロパティエリアにある属性を使って、いろいろと面白い操作ができるようになります。
ネストされたキー名とエイリアス
名前をまとめて別の JSON オブジェクトにし、さらに commission_pct と salary もまとめて別のオブジェクトにしましょう。
そして、属性名ももっと分かりやすいものにしましょう。
右側の「SALARY」または「COMMISSION_PCT」を選択し、「ネストされたキー名」に「compensation」と入力します。すると、生成された以下のコードで、これらの2つの属性がJSON定義内のcompensationオブジェクトの一部として表示されることが確認できます。

'FIRST_NAME' と 'LAST_NAME' についても同様のことを行い、単に 'name' というネストされたキー名の下にそれらを配置し、それぞれ 'first' と 'last' というエイリアスを付けることも可能です。

いろいろと変更を加えたので、もう一度テストしてみましょう。

分かりにくかった場合のために、部門オブジェクトの配列の一部を以下に示します…
{
"_id": 80,
"departmentName": "Sales",
"employees": [
{
"employeeId": 145,
"name": {
"first": "John",
"last": "Russell"
},
"compensation": {
"salary": 14000,
"comm": 0.4
}
},
{
"employeeId": 146,
"name": {
"first": "Karen",
"last": "Partners"
},
"compensation": {
"salary": 13500,
"comm": 0.3
}
},...「作成」ボタンを押すまでは、何も作成されていません!

重要な注意事項が2つありますので、作業内容を失わないためにも必ずお読みください!
- データベース内の他のユーザーがあなたの作品を見ることを気にしないのであれば、「Duality View の作成」ボタンをクリックしてください。
- デザインや調整にもっと時間をかけたい場合は、「ファイルに保存」ボタンを使用してください。
これはVS CodeのWebViewコンポーネントであるため、このダイアログを閉じると作業内容が失われます。これは通常のワークスペース保護機能がすべて備わっている「通常のファイル」ではないため、明日VS Codeを再度開いたときにファイルが残っていることはありません。
ファイルが見つからない場合は、「dvb」という拡張子で保存されています。

他に何ができるだろうか?
ええ、かなりたくさんありますよ。
Duality Viewが作成され、それをクエリすると、次のようになります。
REST APIを作成する
Oracle REST Data Servicesの「AutoREST」機能は、JSONリレーショナル二重性ビューをサポートしています!ビューが「更新可能」であれば、PUT、POST、DELETE、PATCH操作を思う存分実行できます!

JSONデータガイドを見る
右クリックするだけで…

コメント
コメントを投稿