Libre Office Base SQLのエラーが出たときの原因を考えるヒント

2022年9月19日

どのデータベースでも同じなのかもしれませんが、SQLを用いた時にエラーの連続なんてことがあります。特に私のような素人だと・・・笑

しかも,、Base・・・あまり理由を教えてくれないんですよね〜

今日はそんなヒントとなるものをいくつか紹介したいと思います。

エラーのヒント①エラーメッセージから予測

エラーメッセージを読めば、ある程度の予測はつきます。

SQL構文がおかしい場合のエラー

SQL構文がどこかおかしい時はこのメッセージです。

メッセージ自体はわかりやすいかもしれませんね。では問題。写真のSQLはどこが間違いでしょうか?

正解は

SELECT最後にカンマが残っていました。最後はカンマを外さないといけないんですね。

あわよくばそこまで教えて欲しいですけど、とにかく構成が何かおかしい時はこのエラーですので、「,」や「””」が抜けてないかしっかりチェックしてみましょう。

情報が読み取れない場合のエラー

例えばSELECTの項目名が間違っているとこんなエラーが出ます。

データ内容が読み込めませんでした

この例の場合、”相手科目名”という項目が”相手科目”となってしまっている場合です。そんな項目は存在してないんだかそりゃあそうなんですよね。なのでこのエラーが出たら項目名が間違ってないかチェックしましょう。

「とにかく無理です」の場合のエラー

なんか知らんけど無理!!!もちろん原因はあるのですが、そんなややこしそうなエラーの時はこんな感じ。

メッセージは先ほどと同じなのですが、その下の文が長々と書いてあります。私がこれに遭遇するのはクエリーからさらにクエリーを作る時です。

ちなみにこの例の場合、1回目のクエリー作成で、並び替え機能で日付順に設定して、2回目でもう一回同じ並び替え機能を使おうとしたんですね。なので1回目の日付ソートを外したら解決しました。

クエリーで計算した上にもう1回計算した場合も危ないです。簡単なものはできるかもしれませんが、エラーになりやすいです。複雑な計算式もこれになりやすいです。

ちなみに詳細ボタンで詳細見れるんじゃ・・・と思うでしょうけど、何もエラーの詳細は教えてはくれません(笑)

とにかくこんな感じのが出たら、前のクエリで何かやっていないか疑ってみてください。

ちなみにここでも配布している帳簿では残高計算で笑えるほどのエラーに遭遇しました(笑)

エラーのヒント②SQL文のカラーから予測

これが通常

SQL命令文は青、自分が設定したテーブルや項目名は黄土色

では冒頭の「”」を一個外してみましょう。

項目名がグリーンになりましたね。逆に言うと、こんな普通の抽出でクリーンが出てきたら、間違いを疑いましょう。大抵は「””」「,」が抜けている場合こうなります。

グリーンだからって一概にエラーが出るわけでもないのですが・・・・グリーンに遭遇したら注意してください。

エラーのヒント③命令を簡素化して(変えて)試してみる

根気がいりますが、どうしても原因がわからない時は、SQL分を少しずつ簡素化していきます。具体例となる画像がなくて申し訳ないですが、また遭遇したら上げますね。

ともかく、少しずつ変えてみるのがポイントです。

でも、これにはある程度のエラー予測がないとできないです。例えば「1個目のクエリの計算が複雑すぎたから2個目のクエリがエラーなのか」と予測した場合。1個目のクエリーの計算を外してみる。とか、簡素化してみる。とか、そう言うことです。それをやっていくと、どこまでできて、どこまでできないのかが分かってきます。

まとめ

いかがでしたでしょうか。

BaseのSQL関連でエラーが出やすいことをまとめますと

・構文が間違っている(カンマなどが抜けていることも含め)

・抽出している項目の名前が間違えている

・クエリーをさらに抽出した際の命令が被っている

・計算がややこしすぎるか、組んでいる計算式が間違っている

こんなところでしょうか。間違いはある程度自分で探さないとならないのが辛いところですが、割と慣れてきますし、エラー続きでそれがふとできたときの達成感は私は割と好きです。参考になれば幸いです。