質問編集履歴

2

修正

2018/03/30 05:45

投稿

Kiri_Tanpo
Kiri_Tanpo

スコア13

test CHANGED
File without changes
test CHANGED
@@ -646,8 +646,12 @@
646
646
 
647
647
  設定ファイルに下記のようにInsert文の雛形をおいています。
648
648
 
649
+ ```sql
650
+
649
651
  CSVファイル名=INSERT INTO "テーブル名" ("カラム名1","カラム名2",‥) values (?,?,‥)
650
652
 
653
+ ```
654
+
651
655
  cmdファイルをたたいてVBSを呼び出しています。
652
656
 
653
657
  設定ファイル内のCSVファイル名とディレクトリ内のCSVファイルを比較して、マッチングしたらInsert文を引っ張ってきて、CSVファイルの読込を始め、上記問題のソースでパラメータに実際のデータをセットしています。

1

追記

2018/03/30 05:45

投稿

Kiri_Tanpo
Kiri_Tanpo

スコア13

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  Insert文を実行しています。
10
10
 
11
- データ型がNumberのカラムに空白でない文字列を指定すると、エラー取得したい。
11
+ データ型がNumberのカラムに空白でない文字列を指定すると、Nullが入ってしまう原因知りたい。
12
12
 
13
13
 
14
14
 
@@ -394,6 +394,8 @@
394
394
 
395
395
    '------------------------------------------------------------'
396
396
 
397
+ ~追記~
398
+
397
399
    If Err.Number <> 0 Then
398
400
 
399
401
     '--------------------------------------------------------'
@@ -402,7 +404,21 @@
402
404
 
403
405
     '--------------------------------------------------------'
404
406
 
407
+    Set objADOErrItem = objADO.Errors.Item(0)
408
+
405
-    ~SQLエラーログ出力~
409
+    ~エラーログ出力~
410
+
411
+    If objADOErrItem.NativeError = "ORA-00060" Then
412
+
413
+     END_CODE = ERR_DeadLouk
414
+
415
+    Else
416
+
417
+     END_CODE = ERR_SQL
418
+
419
+    End If
420
+
421
+    Set objADOErrItem = Nothing
406
422
 
407
423
     '--------------------------------------------------------'
408
424
 
@@ -410,7 +426,19 @@
410
426
 
411
427
     '--------------------------------------------------------'
412
428
 
429
+    objCsvDataFile.Close
430
+
431
+    objADO.RollbackTrans
432
+
433
+    Call NgInsert( objDataFile.Path )
434
+
435
+    ExitProc ( END_CODE )
436
+
437
+    objCMD.Close
438
+
439
+    Set objCMD = Nothing
440
+
413
-    ~~
441
+    Exit Do
414
442
 
415
443
    End If
416
444
 
@@ -470,7 +498,35 @@
470
498
 
471
499
  '---------------------------------------------------------------------
472
500
 
501
+ ~追記~
502
+
503
+ Sub ExitProc(END_CODE)
504
+
505
+  'データベースを閉じる
506
+
507
+  objCMD.Close
508
+
509
+  objCsvDataFile.Close
510
+
511
+  If CONTROL_FLAG = 0 Then
512
+
513
+   objADO.Close
514
+
515
+   Set objDataFile = Nothing
516
+
517
+   Set objDataFolder = Nothing
518
+
519
+   Set objFSO = Nothing
520
+
521
+   Set objLogFile = Nothing
522
+
473
- ~オブジェクトをClose、破棄し、終了コードをBatchに返す~
523
+   Set objCsvDataFile = Nothing
524
+
525
+   WScript.Quit(END_CODE)
526
+
527
+  End If
528
+
529
+ End Sub
474
530
 
475
531
  '---------------------------------------------------------------------
476
532