質問編集履歴

7

もとに戻した

2019/01/16 06:40

投稿

mk222222
mk222222

スコア59

test CHANGED
@@ -1 +1 @@
1
- あああああああああああああああああああああ
1
+ pl/sqlにてloopの中でループのカウントを取得する関数ってりますか?
test CHANGED
@@ -1 +1,29 @@
1
- あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
1
+ なければcount変数を宣言して使います。
2
+
3
+
4
+
5
+ ```plsql
6
+
7
+ DECLARE
8
+
9
+ count number := 0;
10
+
11
+
12
+
13
+ BEGIN
14
+
15
+ LOOP
16
+
17
+ count := count +1;
18
+
19
+ END LOOP;
20
+
21
+ END;
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+ ```

6

2019/01/16 06:40

投稿

mk222222
mk222222

スコア59

test CHANGED
@@ -1 +1 @@
1
- PL/SQLにてファイルの行番目を取得する関数ってりますか?
1
+ あああああああああああああああああああああ
test CHANGED
@@ -1,73 +1 @@
1
- 表題についてです。あるなら
2
-
3
- --このへんでログに何行目でエラーが起きたか書きたい
4
-
5
- って箇所どう書けばいいですかね?
6
-
7
-
8
-
9
- なければカウント変数使います。
10
-
11
- けどできればカウント変数つかいたくないので質問してみました。
12
-
13
-
14
-
15
- ```PLSQL
16
-
17
- DECLATE
18
-
19
- -- ファイルオープン
20
-
21
- vHandle := UTL_FILE.FOPEN(FilePath, test, 'r', MAX_LENGTH);
22
-
23
- -- カウント変数
24
-
25
-   count NUMBER := 0;
26
-
27
- BEGIN
28
-
29
- LOOP
30
-
31
-      -- ループ変数+1
32
-
33
-      count := count + 1;
34
-
35
-
36
-
37
- -- ファイルを1行読み込み
38
-
39
- UTL_FILE.GET_LINE(vHandle, vReadLine);--ここでMAX_LENGTHを超えた行を読み込むとする
1
+ あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
40
-
41
-
42
-
43
- EXCEPTION
44
-
45
-      -- 想定外の長さのデータが来た場合、ループ終了
46
-
47
-      WHEN INVALID_MAXLINESIZE THEN
48
-
49
-      
50
-
51
- --このへんでログに何行目でエラーが起きたか書きたい
52
-
53
-        GOTO ERROR;
54
-
55
-        EXIT;
56
-
57
-      -- ファイルの終端に来た場合は、ループ終了 
58
-
59
-      WHEN NO_DATA_FOUND THEN
60
-
61
-    EXIT;
62
-
63
-
64
-
65
- END LOOP;
66
-
67
- END;
68
-
69
- /
70
-
71
-
72
-
73
- ```

5

2019/01/16 06:09

投稿

mk222222
mk222222

スコア59

test CHANGED
File without changes
test CHANGED
@@ -52,6 +52,8 @@
52
52
 
53
53
         GOTO ERROR;
54
54
 
55
+        EXIT;
56
+
55
57
       -- ファイルの終端に来た場合は、ループ終了 
56
58
 
57
59
       WHEN NO_DATA_FOUND THEN

4

質問変更しました。すみません、

2019/01/16 05:56

投稿

mk222222
mk222222

スコア59

test CHANGED
@@ -1 +1 @@
1
- PL/SQLにてLOOPブロック中でのループ回数を取得する関数ってありますか?
1
+ PL/SQLにてファイル行番目を取得する関数ってありますか?
test CHANGED
@@ -1,4 +1,12 @@
1
+ 表題についてです。あるなら
2
+
3
+ --このへんでログに何行目でエラーが起きたか書きたい
4
+
5
+ って箇所どう書けばいいですかね?
6
+
7
+
8
+
1
- 表題についてです。なければカウント変数使います。
9
+ なければカウント変数使います。
2
10
 
3
11
  けどできればカウント変数つかいたくないので質問してみました。
4
12
 
@@ -8,13 +16,49 @@
8
16
 
9
17
  DECLATE
10
18
 
19
+ -- ファイルオープン
20
+
21
+ vHandle := UTL_FILE.FOPEN(FilePath, test, 'r', MAX_LENGTH);
22
+
23
+ -- カウント変数
24
+
11
25
    count NUMBER := 0;
12
26
 
13
27
  BEGIN
14
28
 
15
29
  LOOP
16
30
 
31
+      -- ループ変数+1
32
+
17
- count := count +1;
33
+      count := count + 1;
34
+
35
+
36
+
37
+ -- ファイルを1行読み込み
38
+
39
+ UTL_FILE.GET_LINE(vHandle, vReadLine);--ここでMAX_LENGTHを超えた行を読み込むとする
40
+
41
+
42
+
43
+ EXCEPTION
44
+
45
+      -- 想定外の長さのデータが来た場合、ループ終了
46
+
47
+      WHEN INVALID_MAXLINESIZE THEN
48
+
49
+      
50
+
51
+ --このへんでログに何行目でエラーが起きたか書きたい
52
+
53
+        GOTO ERROR;
54
+
55
+      -- ファイルの終端に来た場合は、ループ終了 
56
+
57
+      WHEN NO_DATA_FOUND THEN
58
+
59
+    EXIT;
60
+
61
+
18
62
 
19
63
  END LOOP;
20
64
 

3

0

2019/01/16 05:52

投稿

mk222222
mk222222

スコア59

test CHANGED
File without changes
test CHANGED
@@ -20,6 +20,8 @@
20
20
 
21
21
  END;
22
22
 
23
+ /
24
+
23
25
 
24
26
 
25
27
  ```

2

9

2019/01/16 04:53

投稿

mk222222
mk222222

スコア59

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  END LOOP;
20
20
 
21
- END
21
+ END;
22
22
 
23
23
 
24
24
 

1

誤字

2019/01/16 04:52

投稿

mk222222
mk222222

スコア59

test CHANGED
@@ -1 +1 @@
1
- PL/SQLにてLOOPブロックの中でのループ回数を取得する数ってありますか?
1
+ PL/SQLにてLOOPブロックの中でのループ回数を取得するってありますか?
test CHANGED
@@ -1,4 +1,6 @@
1
1
  表題についてです。なければカウント変数使います。
2
+
3
+ けどできればカウント変数つかいたくないので質問してみました。
2
4
 
3
5
 
4
6
 
@@ -12,8 +14,12 @@
12
14
 
13
15
  LOOP
14
16
 
15
-
17
+ count := count +1;
16
18
 
19
+ END LOOP;
20
+
17
- count
21
+ END
22
+
23
+
18
24
 
19
25
  ```