回答編集履歴

6

訂正

2021/04/24 13:53

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
  end loop;
56
56
 
57
- loop end;
57
+ end loop;
58
58
 
59
59
  END;
60
60
 

5

追記

2021/04/24 13:53

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -27,3 +27,35 @@
27
27
 
28
28
 
29
29
  細々な編集があって追加時の値の判断が難しいなら、日付だけ追加した後に更新するなどすれば良いかと思いますが、それならいっそ、[無名ブロック](http://oracle.se-free.com/plsql/d1_block.html)で順次読み出しして追加する方が良い気がします。
30
+
31
+ ```SQL
32
+
33
+ -- 無名ブロック
34
+
35
+ DECLARE
36
+
37
+ wr record;
38
+
39
+ BEGIN
40
+
41
+ for wr in (
42
+
43
+ select tbl.*
44
+
45
+ , to_date(lead(測定日) over(order by 測定日), 'yyyymmdd') - to_date(測定日, 'yyyymmdd') as 測定間隔日数
46
+
47
+ from テーブル tbl order by 測定日
48
+
49
+ ) loop
50
+
51
+ for i in 1..(wr.測定間隔日数 / 7) loop
52
+
53
+ -- insert 処理
54
+
55
+ end loop;
56
+
57
+ loop end;
58
+
59
+ END;
60
+
61
+ ```

4

推敲

2021/04/24 13:50

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -26,4 +26,4 @@
26
26
 
27
27
 
28
28
 
29
- 細々な編集があって追加時の判断が難しいなら、日付だけ追加した後に更新するなどすれば良いかと思いますが、それならいっそ、[無名ブロック](http://oracle.se-free.com/plsql/d1_block.html)で順次読み出しして追加する方が良い気がします。
29
+ 細々な編集があって追加時の値の判断が難しいなら、日付だけ追加した後に更新するなどすれば良いかと思いますが、それならいっそ、[無名ブロック](http://oracle.se-free.com/plsql/d1_block.html)で順次読み出しして追加する方が良い気がします。

3

追記

2021/04/24 05:49

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -26,4 +26,4 @@
26
26
 
27
27
 
28
28
 
29
- 細々な編集があって追加時の判断が難しいなら、日付だけ追加した後に更新するなどすれば良いかと思います。
29
+ 細々な編集があって追加時の判断が難しいなら、日付だけ追加した後に更新するなどすれば良いかと思いますが、それならいっそ、[無名ブロック](http://oracle.se-free.com/plsql/d1_block.html)で順次読み出しして追加する方が良い気がします

2

推敲

2021/04/24 05:41

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -26,4 +26,4 @@
26
26
 
27
27
 
28
28
 
29
- こまごまな編集があって追加時の判断が難しいなら、日付だけ追加した後にWindow関数(lag()とlead()とか)を使用して更新するなどすれば良いかと思います。
29
+ 細々な編集があって追加時の判断が難しいなら、日付だけ追加した後に更新するなどすれば良いかと思います。

1

追記

2021/04/24 05:36

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -23,3 +23,7 @@
23
23
  [Level擬似列](https://www.oracle.com/jp/technical-resources/article/set-of-sql-oracle-database-imaged.html)
24
24
 
25
25
  [OracleでのPostgreSQLの「generate_series」(連続値の生成関数)的な使い方(LEVEL疑似列)](http://rnk.mitelog.jp/oyaji/2016/03/oraclepostgresq-cd15.html)
26
+
27
+
28
+
29
+ こまごまな編集があって追加時の判断が難しいなら、日付だけ追加した後にWindow関数(lag()とlead()とか)を使用して更新するなどすれば良いかと思います。