SQLでのマルチバイト(全角)のワイルドカード(%, _)
動かないであろうと思った以下のselectがちゃんと動いた。
select * from table where TO_MULTI_BYTE(UPPER(COLUMN_NAME)) like TO_MULTI_BYTE(UPPER('%test%'));
を見ると
とあり、そのものズバリで、動いた環境は10.2.0.2だったのだ。やはり、
select * from table where TO_MULTI_BYTE(UPPER(COLUMN_NAME)) like '%' || TO_MULTI_BYTE(UPPER('test')) || '%';
と書くべき。
PL/SQL配列・ループテスト
PL/SQLの配列=コレクション型 に詳細がある。配列は1オリジン。配列のメソッドについては、 配列で使用可能なメソッド が詳しい。
/* * C:\> C:\ORACLE\PRODUCT\XX.Y.Z\CLIENT_1\bin\sqlplus.exe USER/PASSWORD@SCHEMA * SQL> SET SERVEROUTPUT ON */ DECLARE TYPE tCodeArray IS VARRAY(100) OF TABLE_A.ID%TYPE; vOperCodes tCodeArray := tCodeArray('select', 'insert', 'update', 'delete'); PROCEDURE testProcedure (num IN NUMBER, kind IS VARCHAR2) IS vNumber VARCHAR(10); vId TABLE_A.ID%TYPE; vName TABLE_A.NAME%TYPE; BEGIN vNumber := TO_CHAR(num, 'FM0000'); vId := 'TEST' || vNumber; vName := 'テスト' || TO_MULTI_BYTE(vNumber); IF (kind = 'insert') THEN DBMS.OUTPUT.PUT_LINE('Inserting to XXXX was succeeded. ID=' || vId || ' NAME=' || vName); ELSIF (kind = 'delete') THEN DBMS.OUTPUT.PUT_LINE('Deleting from XXXX was succeeded. ID=' || vId || ' NAME=' || vName); ELSE DBMS.OUTPUT.PUT_LINE('Not execute'); END IF; EXCEPTION WHEN OTHERS THEN DBMS.OUTPUT.PUT_LINE('Error occured. ID=' || vId); END; BEGIN FOR i IN 1 .. vOperCodes.count LOOP IF (MOD(i, 2) = 0 OR i = 3) THEN testProcedure(i, vOperCodes(i)); ELSE DBMS.OUTPUT.PUT_LINE('Not target=' || vOperCodes(i)); END IF; END LOOP; END; /
eclipse 4.8 Photon(pleiades)へのTomcat Pluginインストール
eclipse 4.8 Photon(pleiades)にはTomcat Pluginがインストールされていない。 なので、メニュー「ヘルプ」の「Eclipseマーケットプレース」からインストールする。
通常
Eclipseマーケットプレース画面で、tomcatで検索すると Tomcat Pluginが表示されるので「インストール」。 同意画面で同意すれば、インストール後、「再起動しますか」と聞いてくるので再起動。
その2
上記方法では、「リポジトリが読み取れない」みたいなエラーになってインストールできない場合があった。 その場合は以下のサイトを参照してEclipse Tomcat Plugin - Browse Files at SourceForge.netからzipをダウンロードし、メニュー「ヘルプ」の「新規ソフトウェアのインストール」からインストール可能だった。
うーん、何が違うんだろう???
VMware Fusion上のWindows10でのALT+Print Screenはどうするのか
Windows10 on VMware Fusion でのALT + Print ScreenはOption + F13のようです。 Macに慣れているとデスクトップにファイルが出来るつもりでいますが、Windowsではクリップボートに コピーされるだけなので自分でペイントなりに貼り付けてあげます(Option+F13した後、あれ?できねーって暫く考えてた^^;)。
また、PrintScreenだけなら、「仮想マシン」の「キーの送信」から「Print Scrn」を選べるようです。
その他のキーマッピングも設定できるようで以下のサイトを参照のこと。
(Mac)VMware Fusion 8で仮想マシン(Windows8.1)上でのアクティブウィンドウのスクリーンショットをキャプチャするショートカットキーを追加する
明示的なカーソル
参考は以下。
-- -- 指定行数だけ昇順IDを表示 -- SET SERVEROUTPUT ON DECLARE -- 引数なしの場合は()もいらない CURSOR cX(MAX NUMBER := 100) IS SELECT ROWNUM, A.* FROM (SELECT ID FROM B WHERE FLAG <> 1 ORDER BY ID) A WHERE ROWNUM BETWEEN 0 AND MAX; BEGIN -- デフォルト100。値を指定する場合はcX(500)とかする FOR vRec IN cX() LOOP DBMS_OUTPUT.PUT_LINE('ID=' || vRec.ID); END LOOP; END; /
VBAではできるがVBScriptではできないこと
VBScriptを修正してたら以下のエラーダイアログが表示した(Javascriptでエラーになったときと同じダイアログ)。
エラー: ステートメントがありません。
VBScriptでGoToを記載していたためらしい(VBAではできる)。
<script language="VBS"> .... For i = 1 To 10 .... If 条件 Then GoTo Continue End If .... Continue: Next .... </script>
以下の記事も参照のこと。