項目数の多いテーブルにデータを作成するとき便利と思い、作成してみた。
Oracle10gで動作検証済。
TestDataCreate.vbs
'------------------------------------------------ ' ' テストデータ作成ツール (Oracle 用) ' '------------------------------------------------ targetTable = InputBox("データを作成するテーブルを入力してください。","オブジェクトの指定","") '定数の定義 Const adOpenDynamic = 2 Const adOpenStatic = 3 Const adLockOptimistic = 3 Const adUseClient = 3 'オブジェクト生成 Set objConn = CreateObject("ADODB.Connection") Set objRec = CreateObject("ADODB.Recordset") Set objRecData = CreateObject("ADODB.Recordset") 'DB接続情報の記述 objConn.Open "Provider=MSDAORA.1;Password=****; User ID=****;Data Source=****;Persist Security Info=True" objRec.CursorLocation = adUseClient objRecData.CursorLocation = adUseClient 'テーブル定義の取得 objRec.Open "SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '" & targetTable & "'" , objConn, adOpenStatic, adLockOptimistic 'テーブルの取得(データの追加先) objRecData.Open "SELECT * FROM " & targetTable & "" , objConn , adOpenDynamic, adLockOptimistic objRecData.AddNew colVal = 0 Do until objRec.EOF = true colVal = colVal + 1 colName = objRec.Fields("COLUMN_NAME").Value colType = objRec.Fields("DATA_TYPE").Value colLen = objRec.Fields("DATA_LENGTH").Value IF colType = "DATE" THEN '日付型なら固定値を編集 objRecData.Fields(colName).Value = "1900/01/01" ELSE '桁数分、値を編集 objRecData.Fields(colName).Value = Right(colVal,colLen) END IF objRec.MoveNext Loop objRecData.Update objRec.Close objRecData.Close objConn.Close Msgbox "完了しました。"