(BluePrism)ポケモン図鑑を作る ~Part16 作成中にちょっとハマったところ編~
どうも、おむおむです。
前回、
次回、最終回☆
という煽りを入れました。
newgraduate19-rpa.hatenablog.com
が、今回は最終回になりませんでした。。。
いや、ほんとに最後にするつもりだったんすよ。
このシリーズ早く終わらせて別のことしたいし。
ただ、いざ本番!となったときに
「あれ?なんかうまく動かん、、、」となるところが出てきてですね。。。
ひとえに、私の知識不足が原因でございます(m´・ω・`)m ゴメン…
データベースがリストアできない
まず、ローカル環境で作ったデータベースから
.bakファイルを作成して、
SSMSとかを使ってSQL Serverにリストアしようとしたんです。
そしたら、毎回エラーが起きるわけなんですね。
メッセージ 3110、レベル 14、状態 1、行 1 User does not have permission to RESTORE database 'bp'.
おや・・・?
おかしいですね、管理者ユーザでログインしているはずなのに。。。
と思って調べてみると、
まずレストアを実行するにはdb_createrの権限が必要らしい。
docs.microsoft.com
で、今の自分の権限を調べてみると、、、
( ゚Д゚)
どうやらSQL Serverのマスターアカウントには
db_ownerの権限しか与えられないようです。
docs.aws.amazon.com
S3を使用するとレストアできるみたいですが、
いかんせんS3は無料枠がないため、
また1からポケモン用のデータベースを作ろうと思います。。。
docs.aws.amazon.com
BULK INSERTできない
newgraduate19-rpa.hatenablog.com
さて、しょうがないので↑の記事のように
もう一回BULK INSERTでCSVをインポートしよう、と思ったら、、、
メッセージ 4861、レベル 16、状態 1、行 1 Cannot bulk load because the file "C:\temp\pokedex.csv" could not be opened. Operating system error code 3(The system cannot find the path specified.).
(´;ω;`)ウゥゥ
なんなんだよぉ!
docs.microsoft.com
' data_file ' 指定のテーブルまたはビューにインポートするデータが含まれているデータ ファイルの完全なパスを指定します。 BULK INSERT を使用して、ディスクまたは Azure Blob Storage (ネットワーク、フロッピー ディスク、ハード ディスクなど) から データをインポートすることができます。 data_file には、SQL Server が実行されているサーバーからの有効なパスを指定する必要があります。 data_file がリモート ファイルの場合は、UNC (汎用名前付け規則) 名を指定します。 UNC 名の形式は、\\Systemname\ShareName\Path\FileNameです。
ドキュメント読まなかった私が悪いわよ!ちくしょう!
でも、このためだけにSMBを有効化したり
セキュリティグループいじるのめんどいなぁ。。。
ということで、SSMSの機能を使用してローカルのファイルをインポートします!
docs.microsoft.com
ちなみにUTF-8でインポートしました。
SELECTできない
さて、データをインポートできたから、
SELECTできるか確認してみよう!
SELECT * FROM pokedex WHERE japanese = 'ピカチュウ'; (結果なし)
ポケモン図鑑にピカチュウがいないわけないだろ!
○ーキド博士!○ツギ博士!どうなってんだ!
(EBOリスペクト☆)
・・・落ち着きましょう。
問題を切り分けていくのです。
まず、照合順序はどうか。
docs.microsoft.com
残念、今回はUTF-8でデータをインポートしたので
照合順序がデフォルトのSQL_Latin1_General_CP1_CI_ASでも
問題がないはずです。
docs.aws.amazon.com
結論から言うと、
WHERE句で指定する値に
Nというプレフィックスを付けます。
(↓なぜかサイト表示されない)
https://support.microsoft.com/ja-jp/help/904803
やってみましょう。
SELECT * FROM pokedex WHERE japanese = N'ピカチュウ'; id english japanese 25 Pikachu ピカチュウ
こんな感じで、色々詰まっておりました。。。
まとめ
・SQL Server、一筋縄ではいかない
・AWS、一筋縄ではいかない
・でもどっちもドキュメントが豊富!いえい!
ちなみに、今回はちょっとハマったところ。
次回はもっとハマったところを書きます☆
最終回が来ない(´;ω;`)ウッ…