Log.log(work)

いろんな作業メモ

Windows10でファイアウォールの特定のポートを開ける

Windows10での操作がいまだによくわかっていなかったのでメモ…

  1. コントロールパネルからファイアウォールを選択
  2. 左側のメニューから「詳細設定」をクリック
  3. 受信の規則を選択し、右の「新しい規則」をクリック
  4. ポートを開けたい場合は「ポート」を選択して次へ。次にポート番号を入力する
  5. 実施したい用途に合わせて選択するが、今回は「接続を許可する」を選択
  6. どのネットワークを使っているときに反映するかを選択
  7. 最後に名前を決めれば完了

VBAの備忘メモ(配列の宣言)

久しぶりにVBA

触ったら配列の宣言方法を忘れたのでメモ。

Variantってなかなか使わない言葉だったのですっかり忘れてました。

'数は要素数かと思いきやインデックスの最大数っぽい。1つ多いとEmpty値になる=空白?
Dim noUseCharacter(6) As Variant

ついでにワークシート名の文字チェックプロシージャー

Arrayを使うと要素数を最初に宣言しなくていいんだね。

探せばどこにでもありそうだけど。

Function chkSheetName(ByRef sheetName As String) As Boolean
    Dim noUseCharacter As Variant
    Dim str As Variant
    Const MaxNameSize As Integer = 31
    
    Dim errFlg As Boolean

    noUseCharacter = Array(":", "\", "/", "?", "*", "[", "]")  
    
    '桁数チェック
    If Len(sheetName) > MaxNameSize Then
        errFlg = True
    Else
        '使用できない文字チェック
        For Each str In noUseCharacter
            If InStr(sheetName, str) > 0 Then
                errFlg = True
                Exit For
            End If
        Next str
    End If
    
    chkSheetName = errFlg

End Function

PLSQLでパッケージになくてBody部にあるfunctionの場合

同一パッケージ内はfunctionが使えるけど、他のパッケージからは呼べないんだね。

知らなかった。

Javaでいうprivateメソッドみたいな感じなのかな。

仕方なくパッケージに追加したら呼べるようになりました。

SQLDeveloperからプロシージャーを実行する

JavaからPL/SQLを呼んで結果を返す処理があって、 呼び出し方が独自処理だったのでホントに想定の処理しているかよくわからなかったので

そもそも結果って何が返ってる?と確認したいときのメモ。

※SQLDeveloper上で実施する前提です。 タイトルにプロシージャって書いたけど、正確にはfunctionの呼び出しになるのかも。(すいません

select function(args) from DUAL;

例)

select hoge('foo',0) from DUAL;

追記

・プロシージャを呼び出したい場合はcallを使う

call procedure(args);

例)

call hoge('foo',0);

・Functionのパッケージから指定したい場合

select PACKAGE.Function(args) from DUAL;

例)

select bar.hoge('foo',0) from DUAL;

IEのnew Date()

Edgeでnew Date().toString()すると

Fri Jul 28 2017 10:12:34 GMT+0900 (東京 (標準時))

という文字列が返ってくる。

IE10とIE9で同様に試したところ、返ってきた文字列は

Fri Jul 28 10:12:34 UTC+0900 2017

になった。

今回たまたまURLにくっついていたからEdgeだと動かないというエラーが発生したが、 ほかのブラウザだとどうなるのかな。

Gtk-WARNING **: cannot open display: で怒られた

コンソール越しに言われても。

そんなときはこのコマンド

unset SSH_ASKPASS

参考:

コンソール越しに git コマンドから Gtk-WARNING **: cannot open display と怒られた時 - Qiita

git submodule

外部リポジトリを自リポジトリに持ってきて参照できるしくみ。

submoduleを別ブランチに追加する場合

  • When you command ‘git clone’

.gitmodulesファイルがあれば、そこに記述されているrepositoryをsubmoduleとして取り込む。

  • When you command manually ‘submodule add’

手動でsubmoduleを追加する場合は以下のコマンドで追加する。

$ git submodule add url/xxx.git [フォルダ名]

(取り込んだ先から)submoduleを編集する場合

取り込んだsubmoduleディレクトリに移動し、別ブランチを作成してcommit & pushする。

  • example
$ cd common

$ git checkout -b work

修正したらadd & commit & push

$ git commit -m "common update"

$ git push origin work

repositoryに修正内容を反映し、取り込んでいる各repositoryを更新する。

submoduleが最新になった場合

下記のコマンドで取り込む。

git submodule foreach git pull origin master

submoduleを削除する場合

取り込んだsubmoduleを削除する場合

  • example (hogeがsubmoduleである場合)
git submodule deinit hoge
git rm hoge