やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3ドットコマンド(.load)

SQLite3ドットコマンド(.load)

 拡張機能の動的ロード。

成果物

.help

.load FILE ?ENTRY?       Load an extension library

前提

.load

sqlite3 :memory: \
".load /home/pi/root/sys/env/tool/sqlite_ext/series.so" \
"SELECT value FROM generate_series(0,100,5);"
0
5
10
15
20

~/.sqliterc

ホーム直下にドットファイル.sqlitercを作成して動的ロードさせる方法もある。

~/.sqliterc

.load /home/pi/root/sys/env/tool/sqlite_ext/series.so

 実行するたびに~/.sqlitercの内容を実行してくれる。

sqlite3 :memory: \
"SELECT value FROM generate_series(0,20,5);"

 対話モードを実行するとパスが表示される。

sqlite3
-- Loading resources from /home/pi/.sqliterc
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> 

 ただし、この方法でロードした上でさらにロードするとエラーになる。

sqlite3 :memory: \
".load /home/pi/root/sys/env/tool/sqlite_ext/series.so" \
"SELECT value FROM generate_series(0,20,5);"
-- Loading resources from /home/pi/.sqliterc
Error: error during initialization: 

 ~/.sqlitercは作らないほうがいいことが多そう。面倒でも毎回設定するほうがエラーになるよりマシ。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで