PL/SQL実行マクロ

先日、PL/SQLスクリプトSQL*Plusで実行するバッチを書いたが、
サクラエディタのマクロでやれば早いことに気づいた。
ので、ざくっと作成。言語はJScript(≠JavaScript)

var SQLPLUS_HOME = "C:\\oracle\\product\\x.x.x\\OraHome\\BIN";
var TMP_FILENAME = "temp.sql";
var USER = "USER";
var TNS  = "TNS";
var PWD  = "PASSWORD";

var WshShell;
var objFso;
var objOutput;
var tempFilePath;

// Shellオブジェクトを取得
WshShell = new ActiveXObject("WScript.Shell");

// 一時ファイル名を決定
tempFilePath = WshShell.ExpandEnvironmentStrings("%TEMP%") + "\\" + TMP_FILENAME;

// 出力ストリームを開く(上書き)
objFso = new ActiveXObject("Scripting.FileSystemObject");
objOutput = objFso.CreateTextFile(tempFilePath , true);

// 一時ファイルにSQLスクリプトを出力
objOutput.WriteLine("set LINESIZE 20000;");                             // select実行時に悲しいことにならないように
objOutput.WriteLine("ALTER SESSION SET PLSQL_WARNINGS='ENABLE:ALL';");  // PL/SQLのコンパイル警告は全部見たい
objOutput.WriteLine("start " + Editor.ExpandParameter("$F") + ";");     // ファイルを実行
objOutput.WriteLine("show errors;");                                    // コンパイルエラーがあれば表示
objOutput.WriteLine("quit;");

// 出力ストリームを閉じる
objOutput.close();
objOutput = null;

// 本当はここらへんでアウトプットウィンドウをクリアしたい

// 一時ファイルをSQL*Plusで実行(アウトプットウィンドウに標準出力を得る)
Editor.ExecCommand(SQLPLUS_HOME + "\\sqlplus.exe " + USER + "/" + PWD + "@" + TNS + " @" + tempFilePath, 1);
objFso = null;
WshShell = null;

// 一応アウトプットウィンドウをアクティブにしておく
Editor.ActivateWinOutput();