63’s blog

都内のSEのブログです(*‘ω‘ *)技術は好きですが仕事は嫌いです。

【SQL Server】SYSDATE + 時間指定の方法

SYSDATETIMEで現在の日時が取れます.
YYYY/MM/DDの形式で日付を取得することもできます.

ただ、12時固定のSYSDATEが欲しい!などといった時にうまいこと1つの関数でできなかったりしました.(゚∀゚)
なので、以下にメモします.(っ´ω`c)

ex.1時固定のSYSDATEの取得

select DATEADD(hour,1, format(SYSDATETIME(),'yyyyMMdd'))

s3 select vs athena vs RDS

S3にファイルを格納して疑似DBにするのとRDSを持つのって何が違うんだろって思ったので記載します。


・S3 select
 ファイル1つを対象に検索をかける。
 なので、マスタデータ等データ量が変わりにくかったり、膨大なデータ量でない場合は対応しやすい。
 ただし、普通のクエリとは違ってOrder byは発行できなかったり、
 逆にコーディングのような書き方で検索をかけることができたりする。

・athena
 複数ファイルを対象に検索をかけることができる。
 クエリの検索速度も素晴らしいのでアクセスログなど大量のファイルを作成することがある点については強みだと思います。

・RDS
 RDSは複雑なクエリを発行できる。
 S3をデータ基にしているathenaやs3 selectと違ってコンソールからすぐにリカバリすることもできる。

【npm install】npm ERR! Error: EPERM: operation not permitted, unlink …package.json

npm installしようとしたら
npm ERR! Error: EPERM: operation not permitted, unlink …package.json
ってエラーが出ました。

エラーの内容を見るとpackage.jsonが参照できずにエラーが出ているようです。
そのため、管理者権限で実行する。またはウイルスバスターを一時停止する等の対処法がエラーの内容の後に表示されました。
会社の端末を使っている人はウイルスバスターの停止ができなかったりします。。。。
管理者権限で実行してもエラーは変わらず。。。

というわけで、ググると…
・キャッシュを削除: npm cache clean
こんな対処法がありました。⇒同じくエラー。。。

最終的にProxyを設定して、←忘れてました。
VScodeで「npm install」を実行したらなぜかうまくいきました。
VScodeのコマンドのデフォルトがPowershellなので、
コマンドプロンプトではなくPowershellでnpm installすることで解決するかもしれません!(*‘∀‘)

【サクラエディタ】綺麗なSQLの成形方法!(*‘∀‘)

この記事を読むとこんな感じの心境変化が現れます。
(*'▽') ⇒ (*‘∀‘)

本日、SQLのCreate文を作っていて、ただ実行するならこんな感じで十分なんだけど、
人に見せたりするときにもっと綺麗にしたくなりました!

create ebihurai (
  エビ varchar(5),
  薄力粉 varchar(5),
  卵 varchar(5),
  パン粉 varchar(5),
  塩 varchar(5)
)

サクラエディタスクリプト作成してみよう…。ぱっと見つら。( ゚Д゚)
VBAで作ってみよう…。これだけのために労力( ゚Д゚)w

というわけで簡単なのがサクラエディタで「Alt+↓」。矩形というやつですね。

これと色々置換して上のSQLを修正すると
①項目だけを取り出す

  エビ varchar(5),
  薄力粉 varchar(5),
  卵 varchar(5),
  パン粉 varchar(5),
  塩 varchar(5)

②項目名だけにする。
 下記みたいに置換。その後、項目名の後にいっぱい空白付ける。
  ・「^(半角スペース)」⇒「^」
  ・「(半角スペース).*」⇒(入力値なし)
 ※なんかずれてるけど、気にしないでください←技術不足

エビ        |←この辺まで空白
薄力粉      |←この辺まで空白
卵          |←この辺まで空白
パン粉      |←この辺まで空白
塩          |←この辺まで空白

③別途、項目の数だけvarchar(5)を用意!クリップボードにコピー!

varchar(5),
varchar(5),
varchar(5),
varchar(5),
varchar(5)


④ついに貼り付ける!
②の「|」のにカーソルを持ってきて、「Alt+↓」で一番下の項目まで選択してCtrl+V!

エビ        varchar(5),
薄力粉      varchar(5),
卵          varchar(5),
パン粉      varchar(5),
塩          varchar(5)

これでCreate文の項目のところに全部貼りつけてあげれば完成!(っ´ω`с)

Invoke-RestMethod -Uri を繰り返したいとき

PowerShellAPIをリクエストしたいときとか、
何度もリクエストをトライしてほしい時ってありますよね。


普通だったらレスポンスコードを条件に
ループを繰り返してリトライしてあげたらいいだけです。

※ここから本題です。
このコードで$resにResponse情報が入ると思ったのですが、、、、、空文字でした。(*‘∀‘)?

$res = Invoke-RestMethod -Uri $url -Method Post -Headers $headers -Body $bodyBytes

じゃあ、Response情報はどこにいくのか下記が答えです。

try{
    Invoke-RestMethod -Uri $url -Method Post -Headers $headers -Body $bodyBytes
}
catch{
    Write-Host "StatusCode:"+ $_.Exception.Response.StatusCode.value__
    Write-Host "StatusDescription:"+ $_.Exception.Response.StatusDescription
}

catchの中の$_.Exception.ResponseがResponse情報を持っている結果でした。
なので、リクエストが成功するまで繰り返しを行う処理は以下のように記載します。

    $retryCnt=1
    while ($retryCnt -le $retryTimes) {
        try{
            $res = Invoke-RestMethod -Uri $url -Method Post -Headers $headers -Body $bodyBytes
            return
        }
        catch{
            Write-Host "StatusCode:"+ $_.Exception.Response.StatusCode.value__
            Write-Host "StatusDescription:"+ $_.Exception.Response.StatusDescription
                        
            $retryCnt+=1
        }
    }

【AWS EC2】下に表示されているWebサイトのコンテンツは、Internet Explorerセキュリティ強化の構成によってブロックされています.対処

EC2を踏み台にしてRDSに接続しようとした時に
pgAdminを起動したら「下に表示されているWebサイトのコンテンツは、Internet Explorerセキュリティ強化の…」
と表示された.
これの解決方法を記載する.


IEを開いて,インターネットオプションを開く

②セキュリティタブを開く

③「信頼済みのサイト」を指定した状態で,サイトをクリック

④追加するURLを入力(今回は
http://127.0.0.1を追加)

⑤もう一度pgAdminを起動!

(゚∀゚)デキタ!

【AWS EC2】0.0.0.0/0は接続できるけど、自分のPC以外の接続拒否させたら接続できなかった話(リモートデスクトップ接続)

EC2インスタンスを自分のPCからのみ接続できるようにしたいです。
※1 前置きいらないって人は下の方の【解決方法】を見てください!
セキュリティグループのインバウンドルールに以下のように設定しました。

・タイプ:RDP
プロトコルTCP
・ポート番号:3389
・ソース:(※2 自分のPCのIPアドレス

えーと(´・ω・)、
自分のIPアドレス調べるためにコマンドプロンプトで「ipconfig」打ってIPv4の値をソースに指定…。※2
保存…、リモートデスクトップで接続!…「接続できません!」
………(゚∀゚)?

どのサイトを調べても「ソースは自分のIPアドレスにする」と書いてあるが、
これは【自分のPCのグローバルIPアドレス】のこと。
ipconfigを打って、見てたのは自分のPCのプライベートIPアドレスのことだった。Σ(゚∀゚)
インターネット経由で接続するのだから当たり前であった…。

【解決方法】
①以下のサイトにアクセスして、自分の端末のグローバルIPアドレスを調べる<
https://www.ugtop.com/spill.shtml
>
②取得したIPアドレスをセキュリティグループのインバウンドルールのソースにセット。

リモートデスクトップを起動して接続


以上、こんなことにしばらく苦戦したIT初学者です…。