sqliteでjsonデータ取得

投稿者:田中充 投稿日:2021/01/19(Tue) 14:38:22 No.2624

sqliteでjsonデータを選択する方法を知っている方がおられましたら、手順を教えていただけませんでしょうか?
select 文中で、json_extract 関数呼び出しでエラーとなってしまいます。

未対応のようです

投稿者:ゆうと 投稿日:2021/02/20(Sat) 03:23:26 No.2635

こんにちは
SQLiteは詳しくないのですがjson_extractはバージョン3.9以降の対応なのではないでしょうか。
今のところプロデルでサポートされているのはバージョン3.8のようです。
----------
SQLiteというSQLiteデータベースを作る
SQLiteのバージョンを報告する
----------

今後タイミングを見て新しいライブラリに差し替えますが、
プロデルでもJSONを扱うことができますので、利用できないか検討してください。

Re: 未対応のようです

投稿者:田中充 投稿日:2021/12/08(Wed) 11:26:45 No.2672

田中です。返信が遅れて申し訳ありません。

sqliteではjsonは文字列データとして、'["aaa","bbb"]'のような感じで入っています。
そのため、挿入は通常のinsert文でできます。
jsonデータを検索条件などにするには、一度全部を読み込んで、プロデル側で文字列を分解する必要があるので、ちょっと大変そうです。

検索が必要なデータをJSON以外のデータに置くことによって回避しました。
お手数をおかけしますが、バージョン3.9以降対応版ができましたら、このフォームに返信いただけるとありがたいです。

以上、よろしくお願いいたします。

Re^2: 未対応のようです

投稿者:ゆうと 投稿日:2021/12/08(Wed) 19:35:34 No.2673

現状の状況が、対応可能な最善の状況となっていますので、SQLiteのJSON系の関数は使用せずに、JSON形式種類を活用して回避してください。

> お手数をおかけしますが、バージョン3.9以降対応版ができましたら、このフォームに返信いただけるとありがたいです。

SQLiteのエンジンは、C#(.NET Framework)のライブラリが提供されるかどうかに依存しています。
そのため、3.9に対応するかどうかは、こちらでは決められません。
田中さんの方でC#のSQLiteライブラリの動向をご調査頂き、もしSQLite3.9に対応したC#のライブラリが提供された情報が出ましたら、
私の方にご連絡頂ければ、対応致します。

(もしくはSystem.Data.SQLite.dllをJSON関数に対応したバージョンに差し替えることで対応できるはずです)

なお、最新情報はトップページから見られるTwitterもしくはブログに掲載します。
個別には対応しませんので、ご了承ください。

SQLiteのエクステンションに対応しました

投稿者:ゆうと 投稿日:2022/01/10(Mon) 22:24:00 No.2679

メール確認しました。
Twitterにも掲載しましたとおり、SQLiteのエクステンションに対応しました。
https://docs.utopiat.net/rdr/manual/data/db/dbsqlite.htm

SQLiteのドキュメントを確認したところ、
JSON関連関数は拡張機能として提供されていると書いてありました。
SQLiteそのもののバージョンには関係がないようです。
https://www.sqlite.org/json1.html

JSON関数を有効化するには、次のような文でエクステンションを読み込んでください。
-----------
SQLiteへ接続する
SQLiteに「sqlite3_json_init」を登録する
-----------

なお、今後も基本的にはSQLite上の動作については対応できかねます。
必要に応じて目的の機能を実現するためにC#などでプロデルプラグインを作成することも
ご検討ください。

Re: SQLiteのエクステンションに対応しました

投稿者:田中充 投稿日:2022/01/18(Tue) 17:02:47 No.2685

ゆうと様
早急な対応ありがとうございます!!

▲ページの先頭へ

- WebForum -