embulk-output-oracle 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/classpath/embulk-output-jdbc-0.6.1.jar +0 -0
- data/classpath/embulk-output-oracle-0.6.1.jar +0 -0
- data/src/main/java/org/embulk/output/oracle/DirectBatchInsert.java +1 -9
- data/src/main/java/org/embulk/output/oracle/oci/OCI.java +4 -4
- data/src/main/java/org/embulk/output/oracle/oci/OCIManager.java +1 -1
- data/src/main/java/org/embulk/output/oracle/oci/OCIWrapper.java +36 -17
- data/src/main/java/org/embulk/output/oracle/oci/RowBuffer.java +2 -2
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java +42 -0
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTestImpl.java +103 -1
- data/src/test/resources/oracle/yml/test-insert-direct-oci-method-multibyte.yml +29 -0
- data/src/test/resources/oracle/yml/test-lower-column-options.yml +29 -0
- data/src/test/resources/oracle/yml/test-lower-column.yml +26 -0
- data/src/test/resources/oracle/yml/test-lower-table.yml +26 -0
- metadata +8 -4
- data/classpath/embulk-output-jdbc-0.6.0.jar +0 -0
- data/classpath/embulk-output-oracle-0.6.0.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93819131e319fc21dfc222a8cc210314c6090b11
|
4
|
+
data.tar.gz: 95c2ce5f6e6c6b76ece685fdfa7db3ab72462e10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7103236d7c51629469c5940c4b39a197c48ff57f46f63ca0b8a21e2dcdfe725c4bb3efb20706bba400af470ef0fc1670c5d4eaac0354aaa49efc08262b260bc0
|
7
|
+
data.tar.gz: 152fae8051856d856bc542e544dcb916c1307d761454998f7a26d1b31df88c1e922c02a86a3478202a37ecc9c5758476336a90af22f44fbdba3a4d3a01e04b48
|
Binary file
|
Binary file
|
@@ -153,21 +153,13 @@ public class DirectBatchInsert implements BatchInsert
|
|
153
153
|
rowSize += column.getDataSize();
|
154
154
|
}
|
155
155
|
|
156
|
-
TableDefinition tableDefinition = new TableDefinition(
|
156
|
+
TableDefinition tableDefinition = new TableDefinition(schema, loadTable, columns);
|
157
157
|
ociKey = Arrays.asList(database, user, loadTable);
|
158
158
|
ociManager.open(ociKey, database, user, password, tableDefinition);
|
159
159
|
|
160
160
|
buffer = new RowBuffer(tableDefinition, Math.max(batchSize / rowSize, 8));
|
161
161
|
}
|
162
162
|
|
163
|
-
private String quoteIdentifierString(String s)
|
164
|
-
{
|
165
|
-
if (s == null) {
|
166
|
-
return null;
|
167
|
-
}
|
168
|
-
return "\"" + s + "\"";
|
169
|
-
}
|
170
|
-
|
171
163
|
@Override
|
172
164
|
public int getBatchWeight()
|
173
165
|
{
|
@@ -15,7 +15,6 @@ public interface OCI
|
|
15
15
|
static short OCI_NO_DATA = 100;
|
16
16
|
static short OCI_CONTINUE = -24200;
|
17
17
|
|
18
|
-
|
19
18
|
static int OCI_THREADED = 1;
|
20
19
|
static int OCI_OBJECT = 2;
|
21
20
|
|
@@ -36,13 +35,14 @@ public interface OCI
|
|
36
35
|
static int OCI_ATTR_NUM_ROWS = 81;
|
37
36
|
static int OCI_ATTR_NUM_COLS = 102;
|
38
37
|
static int OCI_ATTR_LIST_COLUMNS = 103;
|
38
|
+
static int OCI_ATTR_DIRPATH_NO_INDEX_ERRORS = 2013;
|
39
39
|
|
40
40
|
static int OCI_DTYPE_PARAM = 53;
|
41
41
|
|
42
42
|
static byte OCI_DIRPATH_COL_COMPLETE = 0;
|
43
43
|
|
44
|
-
static
|
45
|
-
static
|
44
|
+
static short SQLT_CHR = 1;
|
45
|
+
static short SQLT_INT = 3;
|
46
46
|
|
47
47
|
short OCIErrorGet(Pointer hndlp,
|
48
48
|
@u_int32_t int recordno,
|
@@ -129,4 +129,4 @@ public interface OCI
|
|
129
129
|
short OCIDirPathFinish(Pointer dpctx, Pointer errhp);
|
130
130
|
|
131
131
|
short OCIDirPathAbort(Pointer dpctx, Pointer errhp);
|
132
|
-
}
|
132
|
+
}
|
@@ -24,7 +24,6 @@ public class OCIWrapper
|
|
24
24
|
private final Charset systemCharset;
|
25
25
|
private Pointer envHandle;
|
26
26
|
private Pointer errHandle;
|
27
|
-
private Pointer svcHandlePointer;
|
28
27
|
private Pointer svcHandle;
|
29
28
|
private Pointer dpHandle;
|
30
29
|
private Pointer dpcaHandle;
|
@@ -95,7 +94,7 @@ public class OCIWrapper
|
|
95
94
|
errHandle = errHandlePointer.getPointer(0);
|
96
95
|
|
97
96
|
// service context
|
98
|
-
svcHandlePointer = createPointerPointer();
|
97
|
+
Pointer svcHandlePointer = createPointerPointer();
|
99
98
|
check("OCIHandleAlloc(OCI_HTYPE_SVCCTX)", oci.OCIHandleAlloc(
|
100
99
|
envHandle,
|
101
100
|
svcHandlePointer,
|
@@ -142,8 +141,17 @@ public class OCIWrapper
|
|
142
141
|
errHandle));
|
143
142
|
}
|
144
143
|
|
145
|
-
|
146
|
-
|
144
|
+
Pointer cols = createPointer((short)tableDefinition.getColumnCount());
|
145
|
+
check("OCIAttrSet(OCI_ATTR_NUM_COLS)", oci.OCIAttrSet(
|
146
|
+
dpHandle,
|
147
|
+
OCI.OCI_HTYPE_DIRPATH_CTX,
|
148
|
+
cols,
|
149
|
+
(int)cols.size(),
|
150
|
+
OCI.OCI_ATTR_NUM_COLS,
|
151
|
+
errHandle));
|
152
|
+
|
153
|
+
// load table name (case sensitive)
|
154
|
+
Pointer tableName = createPointer("\"" + tableDefinition.getTableName() + "\"");
|
147
155
|
check("OCIAttrSet(OCI_ATTR_NAME)", oci.OCIAttrSet(
|
148
156
|
dpHandle,
|
149
157
|
OCI.OCI_HTYPE_DIRPATH_CTX,
|
@@ -152,13 +160,13 @@ public class OCIWrapper
|
|
152
160
|
, OCI.OCI_ATTR_NAME,
|
153
161
|
errHandle));
|
154
162
|
|
155
|
-
Pointer
|
156
|
-
check("OCIAttrSet(
|
163
|
+
Pointer noIndexErrors = createPointer((byte)1);
|
164
|
+
check("OCIAttrSet(OCI_ATTR_DIRPATH_NO_INDEX_ERRORS)", oci.OCIAttrSet(
|
157
165
|
dpHandle,
|
158
166
|
OCI.OCI_HTYPE_DIRPATH_CTX,
|
159
|
-
|
160
|
-
(int)
|
161
|
-
OCI.
|
167
|
+
noIndexErrors,
|
168
|
+
(int)noIndexErrors.size(),
|
169
|
+
OCI.OCI_ATTR_DIRPATH_NO_INDEX_ERRORS,
|
162
170
|
errHandle));
|
163
171
|
|
164
172
|
Pointer columnsPointer = createPointerPointer();
|
@@ -352,10 +360,12 @@ public class OCIWrapper
|
|
352
360
|
committedOrRollbacked = true;
|
353
361
|
logger.info("OCI : start to commit.");
|
354
362
|
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
363
|
+
try {
|
364
|
+
check("OCIDirPathFinish", oci.OCIDirPathFinish(dpHandle, errHandle));
|
365
|
+
} finally {
|
366
|
+
check("OCILogoff", oci.OCILogoff(svcHandle, errHandle));
|
367
|
+
svcHandle = null;
|
368
|
+
}
|
359
369
|
}
|
360
370
|
|
361
371
|
public void rollback() throws SQLException
|
@@ -363,10 +373,12 @@ public class OCIWrapper
|
|
363
373
|
committedOrRollbacked = true;
|
364
374
|
logger.info("OCI : start to rollback.");
|
365
375
|
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
376
|
+
try {
|
377
|
+
check("OCIDirPathAbort", oci.OCIDirPathAbort(dpHandle, errHandle));
|
378
|
+
} finally {
|
379
|
+
check("OCILogoff", oci.OCILogoff(svcHandle, errHandle));
|
380
|
+
svcHandle = null;
|
381
|
+
}
|
370
382
|
}
|
371
383
|
|
372
384
|
public void close() throws SQLException
|
@@ -413,6 +425,13 @@ public class OCIWrapper
|
|
413
425
|
return Pointer.wrap(Runtime.getSystemRuntime(), ByteBuffer.wrap(s.getBytes(systemCharset)));
|
414
426
|
}
|
415
427
|
|
428
|
+
private Pointer createPointer(byte n)
|
429
|
+
{
|
430
|
+
Pointer pointer = new ArrayMemoryIO(Runtime.getSystemRuntime(), 1);
|
431
|
+
pointer.putByte(0, n);
|
432
|
+
return pointer;
|
433
|
+
}
|
434
|
+
|
416
435
|
private Pointer createPointer(short n)
|
417
436
|
{
|
418
437
|
Pointer pointer = new ArrayMemoryIO(Runtime.getSystemRuntime(), 2);
|
@@ -70,8 +70,8 @@ public class RowBuffer
|
|
70
70
|
|
71
71
|
ByteBuffer bytes = charset.encode(value);
|
72
72
|
int length = bytes.remaining();
|
73
|
-
if (length >
|
74
|
-
throw new SQLException(String.format("byte count of string is too large (max :
|
73
|
+
if (length > Short.MAX_VALUE) {
|
74
|
+
throw new SQLException(String.format("byte count of string is too large (max : %d, actual : %d).", Short.MAX_VALUE, length));
|
75
75
|
}
|
76
76
|
if (length > column.getDataSize()) {
|
77
77
|
throw new SQLException(String.format("byte count of string is too large for column \"%s\" (max : %d, actual : %d).",
|
@@ -175,6 +175,12 @@ public class OracleOutputPluginTest
|
|
175
175
|
invoke(test12c, "testInsertDirect");
|
176
176
|
}
|
177
177
|
|
178
|
+
@Test
|
179
|
+
public void testInsertDirectDuplicate() throws Exception
|
180
|
+
{
|
181
|
+
invoke(test12c, "testInsertDirectDuplicate");
|
182
|
+
}
|
183
|
+
|
178
184
|
@Test
|
179
185
|
public void testInsertDirectCreate() throws Exception
|
180
186
|
{
|
@@ -199,6 +205,24 @@ public class OracleOutputPluginTest
|
|
199
205
|
invoke(test12c, "testInsertDirectOCIMethod");
|
200
206
|
}
|
201
207
|
|
208
|
+
@Test
|
209
|
+
public void testInsertDirectOCIMethodDuplicate() throws Exception
|
210
|
+
{
|
211
|
+
invoke(test12c, "testInsertDirectOCIMethodDuplicate");
|
212
|
+
}
|
213
|
+
|
214
|
+
@Test
|
215
|
+
public void testInsertDirectOCIMethodMultibyte() throws Exception
|
216
|
+
{
|
217
|
+
invoke(test12c, "testInsertDirectOCIMethodMultibyte");
|
218
|
+
}
|
219
|
+
|
220
|
+
@Test
|
221
|
+
public void testInsertDirectOCIMethodMultibyteDuplicate() throws Exception
|
222
|
+
{
|
223
|
+
invoke(test12c, "testInsertDirectOCIMethodMultibyteDuplicate");
|
224
|
+
}
|
225
|
+
|
202
226
|
@Test
|
203
227
|
public void testInsertDirectOCIMethodSplit() throws Exception
|
204
228
|
{
|
@@ -211,6 +235,24 @@ public class OracleOutputPluginTest
|
|
211
235
|
invoke(test12c, "testUrl");
|
212
236
|
}
|
213
237
|
|
238
|
+
@Test
|
239
|
+
public void testLowerTable() throws Exception
|
240
|
+
{
|
241
|
+
invoke(test12c, "testLowerTable");
|
242
|
+
}
|
243
|
+
|
244
|
+
@Test
|
245
|
+
public void testLowerColumn() throws Exception
|
246
|
+
{
|
247
|
+
invoke(test12c, "testLowerColumn");
|
248
|
+
}
|
249
|
+
|
250
|
+
@Test
|
251
|
+
public void testLowerColumnOptions() throws Exception
|
252
|
+
{
|
253
|
+
invoke(test12c, "testLowerColumnOptions");
|
254
|
+
}
|
255
|
+
|
214
256
|
@Test
|
215
257
|
public void testReplace() throws Exception
|
216
258
|
{
|
@@ -1,6 +1,7 @@
|
|
1
1
|
package org.embulk.output.oracle;
|
2
2
|
|
3
3
|
import static org.junit.Assert.assertEquals;
|
4
|
+
import static org.junit.Assert.fail;
|
4
5
|
|
5
6
|
import java.io.File;
|
6
7
|
import java.lang.reflect.Constructor;
|
@@ -147,6 +148,22 @@ public class OracleOutputPluginTestImpl extends AbstractJdbcOutputPluginTest
|
|
147
148
|
assertTable(table);
|
148
149
|
}
|
149
150
|
|
151
|
+
public void testInsertDirectDuplicate() throws Exception
|
152
|
+
{
|
153
|
+
String table = "TEST1";
|
154
|
+
|
155
|
+
dropTable(table);
|
156
|
+
createTable(table);
|
157
|
+
insertRecord(table, "A002");
|
158
|
+
|
159
|
+
try {
|
160
|
+
run("/oracle/yml/test-insert-direct.yml");
|
161
|
+
fail("Exception expected.");
|
162
|
+
} catch (Exception e) {
|
163
|
+
System.out.println(e);
|
164
|
+
}
|
165
|
+
}
|
166
|
+
|
150
167
|
public void testInsertDirectEmpty() throws Exception
|
151
168
|
{
|
152
169
|
String table = "TEST1";
|
@@ -195,6 +212,50 @@ public class OracleOutputPluginTestImpl extends AbstractJdbcOutputPluginTest
|
|
195
212
|
assertTable(table);
|
196
213
|
}
|
197
214
|
|
215
|
+
public void testInsertDirectOCIMethodDuplicate() throws Exception
|
216
|
+
{
|
217
|
+
String table = "TEST1";
|
218
|
+
|
219
|
+
dropTable(table);
|
220
|
+
createTable(table);
|
221
|
+
insertRecord(table, "A002");
|
222
|
+
|
223
|
+
try {
|
224
|
+
run("/oracle/yml/test-insert-direct-oci-method.yml");
|
225
|
+
fail("Exception expected.");
|
226
|
+
} catch (Exception e) {
|
227
|
+
System.out.println(e);
|
228
|
+
}
|
229
|
+
}
|
230
|
+
|
231
|
+
public void testInsertDirectOCIMethodMultibyte() throws Exception
|
232
|
+
{
|
233
|
+
String table = "TEST1";
|
234
|
+
|
235
|
+
dropTable(table);
|
236
|
+
createTable(table);
|
237
|
+
|
238
|
+
run("/oracle/yml/test-insert-direct-oci-method-multibyte.yml");
|
239
|
+
|
240
|
+
assertTable(table);
|
241
|
+
}
|
242
|
+
|
243
|
+
public void testInsertDirectOCIMethodMultibyteDuplicate() throws Exception
|
244
|
+
{
|
245
|
+
String table = "TEST1";
|
246
|
+
|
247
|
+
dropTable(table);
|
248
|
+
createTable(table);
|
249
|
+
insertRecord(table, "A002");
|
250
|
+
|
251
|
+
try {
|
252
|
+
run("/oracle/yml/test-insert-direct-oci-method-multibyte.yml");
|
253
|
+
fail("Exception expected.");
|
254
|
+
} catch (Exception e) {
|
255
|
+
System.out.println(e);
|
256
|
+
}
|
257
|
+
}
|
258
|
+
|
198
259
|
public void testInsertDirectOCIMethodSplit() throws Exception
|
199
260
|
{
|
200
261
|
String table = "TEST1";
|
@@ -219,6 +280,42 @@ public class OracleOutputPluginTestImpl extends AbstractJdbcOutputPluginTest
|
|
219
280
|
assertTable(table);
|
220
281
|
}
|
221
282
|
|
283
|
+
public void testLowerTable() throws Exception
|
284
|
+
{
|
285
|
+
String table = "TEST1";
|
286
|
+
|
287
|
+
dropTable(table);
|
288
|
+
createTable(table);
|
289
|
+
|
290
|
+
run("/oracle/yml/test-lower-table.yml");
|
291
|
+
|
292
|
+
assertTable(table);
|
293
|
+
}
|
294
|
+
|
295
|
+
public void testLowerColumn() throws Exception
|
296
|
+
{
|
297
|
+
String table = "TEST1";
|
298
|
+
|
299
|
+
dropTable(table);
|
300
|
+
createTable(table);
|
301
|
+
|
302
|
+
run("/oracle/yml/test-lower-column.yml");
|
303
|
+
|
304
|
+
assertTable(table);
|
305
|
+
}
|
306
|
+
|
307
|
+
public void testLowerColumnOptions() throws Exception
|
308
|
+
{
|
309
|
+
String table = "TEST1";
|
310
|
+
|
311
|
+
dropTable(table);
|
312
|
+
createTable(table);
|
313
|
+
|
314
|
+
run("/oracle/yml/test-lower-column-options.yml");
|
315
|
+
|
316
|
+
assertTable(table);
|
317
|
+
}
|
318
|
+
|
222
319
|
public void testReplace() throws Exception
|
223
320
|
{
|
224
321
|
String table = "TEST1";
|
@@ -316,7 +413,12 @@ public class OracleOutputPluginTestImpl extends AbstractJdbcOutputPluginTest
|
|
316
413
|
|
317
414
|
private void insertRecord(String table) throws SQLException
|
318
415
|
{
|
319
|
-
|
416
|
+
insertRecord(table, "9999");
|
417
|
+
}
|
418
|
+
|
419
|
+
private void insertRecord(String table, String id) throws SQLException
|
420
|
+
{
|
421
|
+
executeSQL(String.format("INSERT INTO %s VALUES('%s', NULL, NULL, NULL, NULL, NULL, NULL)", table, id));
|
320
422
|
}
|
321
423
|
|
322
424
|
private void assertTable(String table) throws Exception
|
@@ -0,0 +1,29 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/oracle/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: VARCHAR2_ITEM, type: string}
|
13
|
+
- {name: NVARCHAR2_ITEM, type: string}
|
14
|
+
- {name: INTEGER_ITEM, type: long}
|
15
|
+
- {name: NUMBER_ITEM, type: string}
|
16
|
+
- {name: DATE_ITEM, type: timestamp, format: '%Y/%m/%d'}
|
17
|
+
- {name: TIMESTAMP_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
18
|
+
out:
|
19
|
+
type: oracle
|
20
|
+
host: localhost
|
21
|
+
database: TESTDB
|
22
|
+
user: TEST_USER
|
23
|
+
password: test_pw
|
24
|
+
table: TEST1
|
25
|
+
mode: insert_direct
|
26
|
+
insert_method: oci
|
27
|
+
column_options:
|
28
|
+
INTEGER_ITEM: {value_type: pass}
|
29
|
+
#driver_path: driver/ojdbc7.jar
|
@@ -0,0 +1,29 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/oracle/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: varchar2_item, type: string}
|
13
|
+
- {name: nvarchar2_item, type: string}
|
14
|
+
- {name: integer_item, type: long}
|
15
|
+
- {name: number_item, type: string}
|
16
|
+
- {name: date_item, type: string}
|
17
|
+
- {name: timestamp_item, type: string}
|
18
|
+
out:
|
19
|
+
type: oracle
|
20
|
+
host: localhost
|
21
|
+
database: TESTDB
|
22
|
+
user: TEST_USER
|
23
|
+
password: test_pw
|
24
|
+
table: TEST1
|
25
|
+
mode: insert_direct
|
26
|
+
column_options:
|
27
|
+
date_item: {value_type: pass}
|
28
|
+
timestamp_item: {value_type: pass}
|
29
|
+
#driver_path: driver/ojdbc7.jar
|
@@ -0,0 +1,26 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/oracle/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: varchar2_item, type: string}
|
13
|
+
- {name: nvarchar2_item, type: string}
|
14
|
+
- {name: integer_item, type: long}
|
15
|
+
- {name: number_item, type: string}
|
16
|
+
- {name: date_item, type: timestamp, format: '%Y/%m/%d'}
|
17
|
+
- {name: timestamp_item, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
18
|
+
out:
|
19
|
+
type: oracle
|
20
|
+
host: localhost
|
21
|
+
database: TESTDB
|
22
|
+
user: TEST_USER
|
23
|
+
password: test_pw
|
24
|
+
table: TEST1
|
25
|
+
mode: insert_direct
|
26
|
+
#driver_path: driver/ojdbc7.jar
|
@@ -0,0 +1,26 @@
|
|
1
|
+
in:
|
2
|
+
type: file
|
3
|
+
path_prefix: '/oracle/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: VARCHAR2_ITEM, type: string}
|
13
|
+
- {name: NVARCHAR2_ITEM, type: string}
|
14
|
+
- {name: INTEGER_ITEM, type: long}
|
15
|
+
- {name: NUMBER_ITEM, type: string}
|
16
|
+
- {name: DATE_ITEM, type: timestamp, format: '%Y/%m/%d'}
|
17
|
+
- {name: TIMESTAMP_ITEM, type: timestamp, format: '%Y/%m/%d %H:%M:%S'}
|
18
|
+
out:
|
19
|
+
type: oracle
|
20
|
+
host: localhost
|
21
|
+
database: TESTDB
|
22
|
+
user: TEST_USER
|
23
|
+
password: test_pw
|
24
|
+
table: test1
|
25
|
+
mode: insert_direct
|
26
|
+
#driver_path: driver/ojdbc7.jar
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-output-oracle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Inserts or updates records to a table.
|
14
14
|
email:
|
@@ -40,11 +40,15 @@ files:
|
|
40
40
|
- src/test/resources/oracle/data/test1/test1.csv
|
41
41
|
- src/test/resources/oracle/yml/test-insert-direct-direct-method.yml
|
42
42
|
- src/test/resources/oracle/yml/test-insert-direct-empty.yml
|
43
|
+
- src/test/resources/oracle/yml/test-insert-direct-oci-method-multibyte.yml
|
43
44
|
- src/test/resources/oracle/yml/test-insert-direct-oci-method-split.yml
|
44
45
|
- src/test/resources/oracle/yml/test-insert-direct-oci-method.yml
|
45
46
|
- src/test/resources/oracle/yml/test-insert-direct.yml
|
46
47
|
- src/test/resources/oracle/yml/test-insert-empty.yml
|
47
48
|
- src/test/resources/oracle/yml/test-insert.yml
|
49
|
+
- src/test/resources/oracle/yml/test-lower-column-options.yml
|
50
|
+
- src/test/resources/oracle/yml/test-lower-column.yml
|
51
|
+
- src/test/resources/oracle/yml/test-lower-table.yml
|
48
52
|
- src/test/resources/oracle/yml/test-replace-empty.yml
|
49
53
|
- src/test/resources/oracle/yml/test-replace-long-name-multibyte.yml
|
50
54
|
- src/test/resources/oracle/yml/test-replace-long-name.yml
|
@@ -54,8 +58,8 @@ files:
|
|
54
58
|
- src/test/resources/oracle/yml/test-truncate-insert-oci-method.yml
|
55
59
|
- src/test/resources/oracle/yml/test-truncate-insert.yml
|
56
60
|
- src/test/resources/oracle/yml/test-url.yml
|
57
|
-
- classpath/embulk-output-jdbc-0.6.
|
58
|
-
- classpath/embulk-output-oracle-0.6.
|
61
|
+
- classpath/embulk-output-jdbc-0.6.1.jar
|
62
|
+
- classpath/embulk-output-oracle-0.6.1.jar
|
59
63
|
homepage: https://github.com/embulk/embulk-output-jdbc
|
60
64
|
licenses:
|
61
65
|
- Apache 2.0
|
Binary file
|
Binary file
|