teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

7

推敲

2021/04/02 04:59

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -17,6 +17,4 @@
17
17
  > FORCE_NULL
18
18
  > 指定された列の値を、それが引用符付きであったとしても、NULL文字列と比較し、一致した場合は値をNULLにセットします。 NULL文字列が空であるデフォルトでは、引用符付きの空文字列をNULLに変換します。 このオプションはCOPY FROMで、かつCSV形式を使用する場合のみ許されます。
19
19
 
20
- 「NULL文字列と比較し、一致した場合は値NULLにセットします。」ありますが NULL文字列を指定しない場合には、エラーの場合も強制的NUllとしていみたいです
20
+ > FORCE_NULL使うこ引用符付きのNULL文字列のデ値をNULL変換すこともきます。
21
-
22
- あくまで動作で推測しているだけなので、別な理由かもしれませんが。

6

追記

2021/04/02 04:59

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -13,4 +13,10 @@
13
13
  copy public.test(inta, strb) FROM '//xxxxxxx/test_dummy.CSV'
14
14
  with(format CSV, FORCE_NULL(inta), HEADER true, ENCODING 'SHIFT_JIS_2004', ESCAPE '''')
15
15
  ;
16
- ```
16
+ ```
17
+ > FORCE_NULL
18
+ > 指定された列の値を、それが引用符付きであったとしても、NULL文字列と比較し、一致した場合は値をNULLにセットします。 NULL文字列が空であるデフォルトでは、引用符付きの空文字列をNULLに変換します。 このオプションはCOPY FROMで、かつCSV形式を使用する場合のみ許されます。
19
+
20
+ 「NULL文字列と比較し、一致した場合は値をNULLにセットします。」とありますが、 NULL文字列を指定しない場合には、エラーの場合も強制的にNUllとしているみたいですね。
21
+
22
+ あくまで動作で推測しているだけなので、別な理由かもしれませんが。

5

推敲

2021/04/02 04:57

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  追記
10
10
  --
11
- FORCE_NULL指定で大丈夫そうですね。
11
+ **FORCE_NULL**指定で大丈夫そうですね。
12
12
  ```
13
13
  copy public.test(inta, strb) FROM '//xxxxxxx/test_dummy.CSV'
14
14
  with(format CSV, FORCE_NULL(inta), HEADER true, ENCODING 'SHIFT_JIS_2004', ESCAPE '''')

4

推敲

2021/04/02 04:47

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  --
11
11
  FORCE_NULL指定で大丈夫そうですね。
12
12
  ```
13
- copy public.test(inta, strb) FROM 'e:\test_dummy.CSV'
13
+ copy public.test(inta, strb) FROM '//xxxxxxx/test_dummy.CSV'
14
14
  with(format CSV, FORCE_NULL(inta), HEADER true, ENCODING 'SHIFT_JIS_2004', ESCAPE '''')
15
15
  ;
16
16
  ```

3

追記

2021/04/02 04:46

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -4,4 +4,13 @@
4
4
  ではどうですか。~~
5
5
  上記は駄目ですね。
6
6
 
7
- 文字型のダミーの一時テーブルにインポートして、そこから正式なテーブルにinsertするようにしてはどうですか。
7
+ 文字型のダミーの一時テーブルにインポートして、そこから正式なテーブルにinsertするようにしてはどうですか。
8
+
9
+ 追記
10
+ --
11
+ FORCE_NULL指定で大丈夫そうですね。
12
+ ```
13
+ copy public.test(inta, strb) FROM 'e:\test_dummy.CSV'
14
+ with(format CSV, FORCE_NULL(inta), HEADER true, ENCODING 'SHIFT_JIS_2004', ESCAPE '''')
15
+ ;
16
+ ```

2

追記

2021/04/02 04:46

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -2,4 +2,6 @@
2
2
 
3
3
  ~~`Null '""'`
4
4
  ではどうですか。~~
5
- 上記は駄目ですね。
5
+ 上記は駄目ですね。
6
+
7
+ 文字型のダミーの一時テーブルにインポートして、そこから正式なテーブルにinsertするようにしてはどうですか。

1

訂正

2021/04/02 04:38

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  > with null as '' で空文字("")をnullとして認識させようとしたが変化無し
2
2
 
3
- `Null '""'`
3
+ ~~`Null '""'`
4
- ではどうですか。
4
+ ではどうですか。~~
5
+ 上記は駄目ですね。