>

SQLite 데이터베이스에는 다음과 같은 JSON 데이터가 포함 된 열이 있습니다.

MyTable
______________________________________
| specs         | name   | date
--------------------------------------
| ["foo","bar"] | Test01 | 2018-02-05
| ["foo","bar"] | Test02 | 2018-02-01
| ["foo"]       | Test03 | 2018-02-03

의사 코드 :

private static SQLiteConnection _sqliteDb;
using (var source = new SQLiteConnection($"Data Source={databasePath};Version=3;"))
{
    source.Open();
    _sqliteDb = new SQLiteConnection("Data Source=:memory:");
    _sqliteDb.Open();
    // copy db file to memory
    source.BackupDatabase(_sqliteDb, "main", "main", -1, null, 0);
    source.Close();
}
var cmd = new SQLiteCommand(query, _sqliteDb);

이 열을 필터링하기 위해 쿼리는 다음과 같습니다.

var query = "SELECT * FROM MyTable, json_each(MyTable.specs) AS spec WHERE spec.value = 'bar'"

이 오류가 나타납니다 : SQLite error (1): no such table: json_each

System.Data.SQLite.Core ?

  • 답변 # 1

    SQLite 확장 프로그램이로드되지 않았습니다.

    이후 :

    _sqliteDb.Open();
    
    

    json1 를 만들려면 다음을 호출해야합니다  작동하려면 :

    _sqliteDb.EnableExtensions(true);
    _sqliteDb.LoadExtension("SQLite.Interop.dll", "sqlite3_json_init");
    
    

    또한 연결마다 기능이 등록되어 있습니다.

  • 이전 어디서 IN 절의 Python SQL 쿼리에서 매개 변수 INT 값을 대체하는 방법은 무엇입니까?
  • 다음 R의 데이터 프레임과 함께 플롯을 사용하여 시계열 그래프를 플롯 할 수 없습니다 "$연산자는 원자 벡터에 유효하지 않습니다"라는 오류가 계속 발생합니다