embulk-output-sqlserver 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +95 -0
- data/build.gradle +6 -0
- data/classpath/embulk-output-jdbc-0.5.0.jar +0 -0
- data/classpath/embulk-output-sqlserver-0.5.0.jar +0 -0
- data/lib/embulk/output/sqlserver.rb +3 -0
- data/src/main/java/org/embulk/output/SQLServerOutputPlugin.java +151 -0
- data/src/main/java/org/embulk/output/sqlserver/SQLServerOutputConnection.java +124 -0
- data/src/main/java/org/embulk/output/sqlserver/SQLServerOutputConnector.java +49 -0
- data/src/main/java/org/embulk/output/sqlserver/setter/SQLServerByteColumnSetter.java +46 -0
- data/src/main/java/org/embulk/output/sqlserver/setter/SQLServerColumnSetterFactory.java +50 -0
- data/src/main/java/org/embulk/output/sqlserver/setter/SQLServerSqlTimeColumnSetter.java +29 -0
- data/src/test/java/org/embulk/output/sqlserver/PreciseTime.java +48 -0
- data/src/test/java/org/embulk/output/sqlserver/SQLServerOutputPluginTest.java +510 -0
- data/src/test/resources/sqlserver/data/test1/test1.csv +3 -0
- data/src/test/resources/sqlserver/yml/test-insert-direct.yml +43 -0
- data/src/test/resources/sqlserver/yml/test-insert.yml +43 -0
- data/src/test/resources/sqlserver/yml/test-replace-long-name.yml +43 -0
- data/src/test/resources/sqlserver/yml/test-replace.yml +43 -0
- data/src/test/resources/sqlserver/yml/test-string-timestamp.yml +46 -0
- data/src/test/resources/sqlserver/yml/test-truncate-insert.yml +43 -0
- metadata +64 -0
@@ -0,0 +1,3 @@
|
|
1
|
+
A001,0,1234,123456,12345678901,0,1.23,3.456,12.34,123.4567,0.1234567,0.12345678901234,a,b,c,A,B,C,2016/1/1,2017/1/1 1:2:3.123,2018/1/1 1:2:3.1234567,2019/1/1 1:2:3.12,2020/1/1 1:2:3,3:4:5.1234567,6:7:8.12
|
2
|
+
A002,255,-32768,-2147483648,-9223372036854775808,1,-9999999999.99,-99.999,-214748.3648,-922337203685477.5808,-9999000000,-999999999999000000,あい,あいうえ,あいうえお,かき,かきくけ,かきくけこ,2016/12/31,2017/12/31 23:59:59.997,2018/12/31 23:59:59.9999999,2019/12/31 23:59:59.99,2020/12/31 23:59:59,23:59:59.9999999,23:59:59.99
|
3
|
+
A003,,,,,,,,,,,,,,,,,,,,,,,,
|
@@ -0,0 +1,43 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/sqlserver/data/test1/test1.csv'
|
4
|
+
parser:
|
5
|
+
charset: UTF-8
|
6
|
+
newline: CRLF
|
7
|
+
type: csv
|
8
|
+
delimiter: ','
|
9
|
+
quote: ''
|
10
|
+
columns:
|
11
|
+
- {name: ID, type: string}
|
12
|
+
- {name: TINYINT_ITEM, type: long}
|
13
|
+
- {name: SMALLINT_ITEM, type: long}
|
14
|
+
- {name: INT_ITEM, type: long}
|
15
|
+
- {name: BIGINT_ITEM, type: long}
|
16
|
+
- {name: BIT_ITEM, type: boolean}
|
17
|
+
- {name: DECIMAL_ITEM, type: string}
|
18
|
+
- {name: NUMERIC_ITEM, type: string}
|
19
|
+
- {name: SMALLMONEY_ITEM, type: string}
|
20
|
+
- {name: MONEY_ITEM, type: string}
|
21
|
+
- {name: REAL_ITEM, type: double}
|
22
|
+
- {name: FLOAT_ITEM, type: double}
|
23
|
+
- {name: CHAR_ITEM, type: string}
|
24
|
+
- {name: VARCHAR_ITEM, type: string}
|
25
|
+
- {name: TEXT_ITEM, type: string}
|
26
|
+
- {name: NCHAR_ITEM, type: string}
|
27
|
+
- {name: NVARCHAR_ITEM, type: string}
|
28
|
+
- {name: NTEXT_ITEM, type: string}
|
29
|
+
- {name: DATE_ITEM, type: timestamp, format: '%Y/%m/%d'}
|
30
|
+
- {name: DATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
31
|
+
- {name: DATETIME2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
32
|
+
- {name: DATETIME2_2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
33
|
+
- {name: SMALLDATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
34
|
+
- {name: TIME_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
35
|
+
- {name: TIME_2_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
36
|
+
out:
|
37
|
+
type: sqlserver
|
38
|
+
host: localhost
|
39
|
+
database: TESTDB
|
40
|
+
user: TEST_USER
|
41
|
+
password: test_pw
|
42
|
+
table: TEST1
|
43
|
+
mode: insert_direct
|
@@ -0,0 +1,43 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/sqlserver/data/test1/test1.csv'
|
4
|
+
parser:
|
5
|
+
charset: UTF-8
|
6
|
+
newline: CRLF
|
7
|
+
type: csv
|
8
|
+
delimiter: ','
|
9
|
+
quote: ''
|
10
|
+
columns:
|
11
|
+
- {name: ID, type: string}
|
12
|
+
- {name: TINYINT_ITEM, type: long}
|
13
|
+
- {name: SMALLINT_ITEM, type: long}
|
14
|
+
- {name: INT_ITEM, type: long}
|
15
|
+
- {name: BIGINT_ITEM, type: long}
|
16
|
+
- {name: BIT_ITEM, type: boolean}
|
17
|
+
- {name: DECIMAL_ITEM, type: string}
|
18
|
+
- {name: NUMERIC_ITEM, type: string}
|
19
|
+
- {name: SMALLMONEY_ITEM, type: string}
|
20
|
+
- {name: MONEY_ITEM, type: string}
|
21
|
+
- {name: REAL_ITEM, type: double}
|
22
|
+
- {name: FLOAT_ITEM, type: double}
|
23
|
+
- {name: CHAR_ITEM, type: string}
|
24
|
+
- {name: VARCHAR_ITEM, type: string}
|
25
|
+
- {name: TEXT_ITEM, type: string}
|
26
|
+
- {name: NCHAR_ITEM, type: string}
|
27
|
+
- {name: NVARCHAR_ITEM, type: string}
|
28
|
+
- {name: NTEXT_ITEM, type: string}
|
29
|
+
- {name: DATE_ITEM, type: timestamp, format: '%Y/%m/%d'}
|
30
|
+
- {name: DATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
31
|
+
- {name: DATETIME2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
32
|
+
- {name: DATETIME2_2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
33
|
+
- {name: SMALLDATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
34
|
+
- {name: TIME_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
35
|
+
- {name: TIME_2_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
36
|
+
out:
|
37
|
+
type: sqlserver
|
38
|
+
host: localhost
|
39
|
+
database: TESTDB
|
40
|
+
user: TEST_USER
|
41
|
+
password: test_pw
|
42
|
+
table: TEST1
|
43
|
+
mode: insert
|
@@ -0,0 +1,43 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/sqlserver/data/test1/test1.csv'
|
4
|
+
parser:
|
5
|
+
charset: UTF-8
|
6
|
+
newline: CRLF
|
7
|
+
type: csv
|
8
|
+
delimiter: ','
|
9
|
+
quote: ''
|
10
|
+
columns:
|
11
|
+
- {name: ID, type: string}
|
12
|
+
- {name: TINYINT_ITEM, type: long}
|
13
|
+
- {name: SMALLINT_ITEM, type: long}
|
14
|
+
- {name: INT_ITEM, type: long}
|
15
|
+
- {name: BIGINT_ITEM, type: long}
|
16
|
+
- {name: BIT_ITEM, type: boolean}
|
17
|
+
- {name: DECIMAL_ITEM, type: string}
|
18
|
+
- {name: NUMERIC_ITEM, type: string}
|
19
|
+
- {name: SMALLMONEY_ITEM, type: string}
|
20
|
+
- {name: MONEY_ITEM, type: string}
|
21
|
+
- {name: REAL_ITEM, type: double}
|
22
|
+
- {name: FLOAT_ITEM, type: double}
|
23
|
+
- {name: CHAR_ITEM, type: string}
|
24
|
+
- {name: VARCHAR_ITEM, type: string}
|
25
|
+
- {name: TEXT_ITEM, type: string}
|
26
|
+
- {name: NCHAR_ITEM, type: string}
|
27
|
+
- {name: NVARCHAR_ITEM, type: string}
|
28
|
+
- {name: NTEXT_ITEM, type: string}
|
29
|
+
- {name: DATE_ITEM, type: timestamp, format: '%Y/%m/%d'}
|
30
|
+
- {name: DATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
31
|
+
- {name: DATETIME2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
32
|
+
- {name: DATETIME2_2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
33
|
+
- {name: SMALLDATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
34
|
+
- {name: TIME_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
35
|
+
- {name: TIME_2_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
36
|
+
out:
|
37
|
+
type: sqlserver
|
38
|
+
host: localhost
|
39
|
+
database: TESTDB
|
40
|
+
user: TEST_USER
|
41
|
+
password: test_pw
|
42
|
+
table: TEST___A123456789B123456789C123456789D123456789E123456789F123456789G123456789H123456789I123456789J123456789K123456789L123456789
|
43
|
+
mode: replace
|
@@ -0,0 +1,43 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/sqlserver/data/test1/test1.csv'
|
4
|
+
parser:
|
5
|
+
charset: UTF-8
|
6
|
+
newline: CRLF
|
7
|
+
type: csv
|
8
|
+
delimiter: ','
|
9
|
+
quote: ''
|
10
|
+
columns:
|
11
|
+
- {name: ID, type: string}
|
12
|
+
- {name: TINYINT_ITEM, type: long}
|
13
|
+
- {name: SMALLINT_ITEM, type: long}
|
14
|
+
- {name: INT_ITEM, type: long}
|
15
|
+
- {name: BIGINT_ITEM, type: long}
|
16
|
+
- {name: BIT_ITEM, type: boolean}
|
17
|
+
- {name: DECIMAL_ITEM, type: string}
|
18
|
+
- {name: NUMERIC_ITEM, type: string}
|
19
|
+
- {name: SMALLMONEY_ITEM, type: string}
|
20
|
+
- {name: MONEY_ITEM, type: string}
|
21
|
+
- {name: REAL_ITEM, type: double}
|
22
|
+
- {name: FLOAT_ITEM, type: double}
|
23
|
+
- {name: CHAR_ITEM, type: string}
|
24
|
+
- {name: VARCHAR_ITEM, type: string}
|
25
|
+
- {name: TEXT_ITEM, type: string}
|
26
|
+
- {name: NCHAR_ITEM, type: string}
|
27
|
+
- {name: NVARCHAR_ITEM, type: string}
|
28
|
+
- {name: NTEXT_ITEM, type: string}
|
29
|
+
- {name: DATE_ITEM, type: timestamp, format: '%Y/%m/%d'}
|
30
|
+
- {name: DATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
31
|
+
- {name: DATETIME2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
32
|
+
- {name: DATETIME2_2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
33
|
+
- {name: SMALLDATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
34
|
+
- {name: TIME_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
35
|
+
- {name: TIME_2_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
36
|
+
out:
|
37
|
+
type: sqlserver
|
38
|
+
host: localhost
|
39
|
+
database: TESTDB
|
40
|
+
user: TEST_USER
|
41
|
+
password: test_pw
|
42
|
+
table: TEST1
|
43
|
+
mode: replace
|
@@ -0,0 +1,46 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/sqlserver/data/test1/test1.csv'
|
4
|
+
parser:
|
5
|
+
charset: UTF-8
|
6
|
+
newline: CRLF
|
7
|
+
type: csv
|
8
|
+
delimiter: ','
|
9
|
+
quote: ''
|
10
|
+
columns:
|
11
|
+
- {name: ID, type: string}
|
12
|
+
- {name: TINYINT_ITEM, type: long}
|
13
|
+
- {name: SMALLINT_ITEM, type: long}
|
14
|
+
- {name: INT_ITEM, type: long}
|
15
|
+
- {name: BIGINT_ITEM, type: long}
|
16
|
+
- {name: BIT_ITEM, type: boolean}
|
17
|
+
- {name: DECIMAL_ITEM, type: string}
|
18
|
+
- {name: NUMERIC_ITEM, type: string}
|
19
|
+
- {name: SMALLMONEY_ITEM, type: string}
|
20
|
+
- {name: MONEY_ITEM, type: string}
|
21
|
+
- {name: REAL_ITEM, type: double}
|
22
|
+
- {name: FLOAT_ITEM, type: double}
|
23
|
+
- {name: CHAR_ITEM, type: string}
|
24
|
+
- {name: VARCHAR_ITEM, type: string}
|
25
|
+
- {name: TEXT_ITEM, type: string}
|
26
|
+
- {name: NCHAR_ITEM, type: string}
|
27
|
+
- {name: NVARCHAR_ITEM, type: string}
|
28
|
+
- {name: NTEXT_ITEM, type: string}
|
29
|
+
- {name: DATE_ITEM, type: timestamp, format: '%Y/%m/%d'}
|
30
|
+
- {name: DATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
31
|
+
- {name: DATETIME2_ITEM, type: string}
|
32
|
+
- {name: DATETIME2_2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
33
|
+
- {name: SMALLDATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
34
|
+
- {name: TIME_ITEM, type: string}
|
35
|
+
- {name: TIME_2_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
36
|
+
out:
|
37
|
+
type: sqlserver
|
38
|
+
host: localhost
|
39
|
+
database: TESTDB
|
40
|
+
user: TEST_USER
|
41
|
+
password: test_pw
|
42
|
+
table: TEST1
|
43
|
+
mode: insert_direct
|
44
|
+
column_options:
|
45
|
+
DATETIME2_ITEM: {value_type: pass}
|
46
|
+
TIME_ITEM: {value_type: pass}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/sqlserver/data/test1/test1.csv'
|
4
|
+
parser:
|
5
|
+
charset: UTF-8
|
6
|
+
newline: CRLF
|
7
|
+
type: csv
|
8
|
+
delimiter: ','
|
9
|
+
quote: ''
|
10
|
+
columns:
|
11
|
+
- {name: ID, type: string}
|
12
|
+
- {name: TINYINT_ITEM, type: long}
|
13
|
+
- {name: SMALLINT_ITEM, type: long}
|
14
|
+
- {name: INT_ITEM, type: long}
|
15
|
+
- {name: BIGINT_ITEM, type: long}
|
16
|
+
- {name: BIT_ITEM, type: boolean}
|
17
|
+
- {name: DECIMAL_ITEM, type: string}
|
18
|
+
- {name: NUMERIC_ITEM, type: string}
|
19
|
+
- {name: SMALLMONEY_ITEM, type: string}
|
20
|
+
- {name: MONEY_ITEM, type: string}
|
21
|
+
- {name: REAL_ITEM, type: double}
|
22
|
+
- {name: FLOAT_ITEM, type: double}
|
23
|
+
- {name: CHAR_ITEM, type: string}
|
24
|
+
- {name: VARCHAR_ITEM, type: string}
|
25
|
+
- {name: TEXT_ITEM, type: string}
|
26
|
+
- {name: NCHAR_ITEM, type: string}
|
27
|
+
- {name: NVARCHAR_ITEM, type: string}
|
28
|
+
- {name: NTEXT_ITEM, type: string}
|
29
|
+
- {name: DATE_ITEM, type: timestamp, format: '%Y/%m/%d'}
|
30
|
+
- {name: DATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
31
|
+
- {name: DATETIME2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
32
|
+
- {name: DATETIME2_2_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S.%N'}
|
33
|
+
- {name: SMALLDATETIME_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
34
|
+
- {name: TIME_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
35
|
+
- {name: TIME_2_ITEM, type: timestamp, format: '%H:%M:%S.%N'}
|
36
|
+
out:
|
37
|
+
type: sqlserver
|
38
|
+
host: localhost
|
39
|
+
database: TESTDB
|
40
|
+
user: TEST_USER
|
41
|
+
password: test_pw
|
42
|
+
table: TEST1
|
43
|
+
mode: truncate_insert
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: embulk-output-sqlserver
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sadayuki Furuhashi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-01-15 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Inserts or updates records to a table.
|
14
|
+
email:
|
15
|
+
- frsyuki@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- README.md
|
21
|
+
- build.gradle
|
22
|
+
- lib/embulk/output/sqlserver.rb
|
23
|
+
- src/main/java/org/embulk/output/SQLServerOutputPlugin.java
|
24
|
+
- src/main/java/org/embulk/output/sqlserver/SQLServerOutputConnection.java
|
25
|
+
- src/main/java/org/embulk/output/sqlserver/SQLServerOutputConnector.java
|
26
|
+
- src/main/java/org/embulk/output/sqlserver/setter/SQLServerByteColumnSetter.java
|
27
|
+
- src/main/java/org/embulk/output/sqlserver/setter/SQLServerColumnSetterFactory.java
|
28
|
+
- src/main/java/org/embulk/output/sqlserver/setter/SQLServerSqlTimeColumnSetter.java
|
29
|
+
- src/test/java/org/embulk/output/sqlserver/PreciseTime.java
|
30
|
+
- src/test/java/org/embulk/output/sqlserver/SQLServerOutputPluginTest.java
|
31
|
+
- src/test/resources/sqlserver/data/test1/test1.csv
|
32
|
+
- src/test/resources/sqlserver/yml/test-insert-direct.yml
|
33
|
+
- src/test/resources/sqlserver/yml/test-insert.yml
|
34
|
+
- src/test/resources/sqlserver/yml/test-replace-long-name.yml
|
35
|
+
- src/test/resources/sqlserver/yml/test-replace.yml
|
36
|
+
- src/test/resources/sqlserver/yml/test-string-timestamp.yml
|
37
|
+
- src/test/resources/sqlserver/yml/test-truncate-insert.yml
|
38
|
+
- classpath/embulk-output-jdbc-0.5.0.jar
|
39
|
+
- classpath/embulk-output-sqlserver-0.5.0.jar
|
40
|
+
homepage: https://github.com/embulk/embulk-output-jdbc
|
41
|
+
licenses:
|
42
|
+
- Apache 2.0
|
43
|
+
metadata: {}
|
44
|
+
post_install_message:
|
45
|
+
rdoc_options: []
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
requirements: []
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 2.1.9
|
61
|
+
signing_key:
|
62
|
+
specification_version: 4
|
63
|
+
summary: JDBC output plugin for Embulk
|
64
|
+
test_files: []
|