3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VScode拡張機能の「SQLite」で発生したエラーと対処方法

Posted at

エラー発生までの経緯

大学も春休みに突入したので,「よーし,SQLの勉強するぞ!」と息巻いてvscodeを開き,最新版のSQLiteと拡張機能として提供されているSQLiteをインストールした.
まず初めにSQLITE EXPLORERなるものを召喚せねばならないらしく,適当に作ったtest.dbを右クリックしてOpen Databaseを選択して...

さっそく問題にぶちあたった.

[15:04:36][vscode-sqlite][ERROR] Failed to open database 'c:\Users\hoge\code\sq\test.db': Parse error near line 4: no such column: table
  aster                                 WHERE (type="table" OR type="view")     
                                      error here ---^

えええ,なにこれ.
4行目にエラーとか言われても,そもそもまだ4行目とかないんですけど.
というか,Whereクエリなんて書いてないよ.

解消までの経緯

ということで,githubで開発元のプルリクを見て前例がないかを見てみると意外といっぱいありました(笑)
同時に,何人かの方が原因と解決策を提示していらしたのでここにまとめます.

原因と解消まで

原因

拡張機能でインストールされる"C:\Users\hoge\.vscode\extensions\alexcvzz.vscode-sqlite-0.14.1\dist\extension.js"に原因が潜んでいたようです.SQLiteが3.41.0からダブルクォーテーションによる記述をサポートしなくなったらしく,エラーに含まれていたようなWHERE (type=\"table\" OR type=\"view\")というクエリは受け付けなくなったようです.したがって,このダブルクォーテーションをシングルクォーテーションへ変更することが求められているようです.

step1

このextension.jsをvscodeで開くと膨大なソースコードが展開されますが,臆さずにナビゲーションバーから編集を選択し,真ん中くらいにある検索を選択してください.

step2

出てきた検索バーに\"table\"とでも入れてやると該当箇所がハイライトされるので,その付近にあるはずのWHERE (type=\"table\" OR type=\"view\")WHERE (type=\'table\' OR type=\'view\')としてあげます.これで準備は整ったので,一度ウィンドウを閉じたら再度開いて少し待ちます.

step3

データベースファイルを右クリック,Open Databaseを選択すると今度はしっかりエクスプローラーウィンドウの最下にSQLITE EXPLORERが出てきました.

出てこなかった場合
もう一度ファイルを開いて修正したコードになっているかを確認してください.
また,変更の反映までに時間がかかる場合もあります.

やっと拡張機能が使えるぞ!

結論

正直,素人目にはそんなに大それたエラーではないし,「早く治してほしーなー」といった感じです.今回の内容で不明点・矛盾・誤りがあったら申し訳ありません.

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?