6. 9月 2016 15:08
/
丘山大一
/
Blog . SQL . FireBird . 開発ツール
コメント (0)
解決? まで3時間ほどかかりました。
結論!
ISQL.exe で「-i」オプションをつけて読み込ませるファイルには、BOM (Byte Order Mark) をつけてはいけないらしい。
細かい話
isql.exe - i hogehogeScript.fmq -user SYSDBA -password masterkey -charset UNICODE_FSS 'HOGE.FTB';
とやったら、何回やっても最初のクエリの実行で失敗する。
接続する文字セットを変えたらうまくいくかな? と思いましたが、それでも失敗。
「最初だけ失敗する……?」
→
「最初にだけあるもの/ないもの ってなんだ……?」
→
「BOMだ!」
→
「なんか知らんが動いたぞちくしょー」
根拠
やってみてダメだった、BOM外したらうまくいった……というだけです。
根拠となるドキュメントを発見できていません。
・私の検索能力が低い説。
・そもそもISQL の使い方間違ってんだよ説。
・BOM がダメなんて常識だろ説。
・Windows でスクリプト系ファイルを書く情弱なんて、我々Firebird 業界にはいらんのだよ説。
・はぁ? 何言ってんの? お前の環境おかしいよ説
etc.
諸説ありますが、とりあえず誰か正解を教えてください。
思うに
BOMがダメだとしたら、MS信者、WIndows 万歳な人間には辛い仕様だぜよ。