embulk-output-oracle 0.7.12 → 0.7.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/build.gradle +1 -1
- data/classpath/embulk-output-jdbc-0.7.13.jar +0 -0
- data/classpath/embulk-output-oracle-0.7.13.jar +0 -0
- data/src/main/java/org/embulk/output/OracleOutputPlugin.java +1 -1
- data/src/main/java/org/embulk/output/oracle/OracleOutputConnection.java +2 -19
- data/src/main/java/org/embulk/output/oracle/oci/OCIWrapper.java +2 -30
- data/src/test/java/org/embulk/output/oracle/OracleTests.java +1 -1
- metadata +4 -4
- data/classpath/embulk-output-jdbc-0.7.12.jar +0 -0
- data/classpath/embulk-output-oracle-0.7.12.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: 4c80319aa49fcd2a1887d1e8ceb3d6bce058f5a3
|
4
|
+
data.tar.gz: a8c5d2cbe6cb8af65be5d0a33834f1807cd241db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93e147585a62ba7851725283165fb96eb3be74913b585e8245c629d3247b6fb34d9cc41b41ece68ab7089ec3e3de728943341cc419b288ceb56ec6116d8559e1
|
7
|
+
data.tar.gz: db9c730a1f0e68b4a911ffc1a185e36e761b71e7e46f99ba5566c9d54e28ab9d0a46267ebcc6b1a3abf414922a70baf8e2a14a7d4ca6b9c2941e4f557de20320
|
data/README.md
CHANGED
@@ -20,6 +20,8 @@ Oracle output plugin for Embulk loads records to Oracle.
|
|
20
20
|
- **temp_schema**: schema name for intermediate tables. by default, intermediate tables will be created in the same schema as destination table. replace mode doesn't support temp_schema. (string, optional)
|
21
21
|
- **url**: URL of the JDBC connection (string, optional)
|
22
22
|
- **table**: destination table name (string, required)
|
23
|
+
- **create_table_constraint** table constraint added to `CREATE TABLE` statement, like `CREATE TABLE <table_name> (<column1> <type1>, <column2> <type2>, ..., <create_table_constraint>) <create_table_option>`.
|
24
|
+
- **create_table_option** table option added to `CREATE TABLE` statement, like `CREATE TABLE <table_name> (<column1> <type1>, <column2> <type2>, ..., <create_table_constraint>) <create_table_option>`.
|
23
25
|
- **options**: extra connection properties (hash, default: {})
|
24
26
|
- **retry_limit** max retry count for database operations (integer, default: 12)
|
25
27
|
- **retry_wait** initial retry wait time in milliseconds (integer, default: 1000 (1 second))
|
data/build.gradle
CHANGED
Binary file
|
Binary file
|
@@ -83,7 +83,7 @@ public class OracleOutputPlugin
|
|
83
83
|
OraclePluginTask oracleTask = (OraclePluginTask) task;
|
84
84
|
|
85
85
|
if (oracleTask.getDriverPath().isPresent()) {
|
86
|
-
|
86
|
+
addDriverJarToClasspath(oracleTask.getDriverPath().get());
|
87
87
|
}
|
88
88
|
|
89
89
|
String url;
|
@@ -64,26 +64,9 @@ public class OracleOutputConnection
|
|
64
64
|
}
|
65
65
|
|
66
66
|
@Override
|
67
|
-
|
67
|
+
protected boolean supportsTableIfExistsClause()
|
68
68
|
{
|
69
|
-
|
70
|
-
dropTable(table);
|
71
|
-
}
|
72
|
-
}
|
73
|
-
|
74
|
-
@Override
|
75
|
-
protected void dropTableIfExists(Statement stmt, TableIdentifier table) throws SQLException {
|
76
|
-
if (tableExists(table)) {
|
77
|
-
dropTable(stmt, table);
|
78
|
-
}
|
79
|
-
}
|
80
|
-
|
81
|
-
@Override
|
82
|
-
public void createTableIfNotExists(TableIdentifier table, JdbcSchema schema) throws SQLException
|
83
|
-
{
|
84
|
-
if (!tableExists(table)) {
|
85
|
-
createTable(table, schema);
|
86
|
-
}
|
69
|
+
return false;
|
87
70
|
}
|
88
71
|
|
89
72
|
private static String getSchema(Connection connection) throws SQLException
|
@@ -1,9 +1,6 @@
|
|
1
1
|
package org.embulk.output.oracle.oci;
|
2
2
|
|
3
3
|
import java.io.File;
|
4
|
-
import java.net.MalformedURLException;
|
5
|
-
import java.net.URISyntaxException;
|
6
|
-
import java.net.URL;
|
7
4
|
import java.nio.ByteBuffer;
|
8
5
|
import java.nio.charset.Charset;
|
9
6
|
import java.sql.SQLException;
|
@@ -15,14 +12,13 @@ import jnr.ffi.Runtime;
|
|
15
12
|
import jnr.ffi.provider.jffi.ArrayMemoryIO;
|
16
13
|
import jnr.ffi.provider.jffi.ByteBufferMemoryIO;
|
17
14
|
|
15
|
+
import org.embulk.output.jdbc.AbstractJdbcOutputPlugin;
|
18
16
|
import org.embulk.spi.Exec;
|
19
17
|
import org.slf4j.Logger;
|
20
18
|
|
21
19
|
|
22
20
|
public class OCIWrapper
|
23
21
|
{
|
24
|
-
private static final String PLUGIN_NAME = "embulk-output-oracle";
|
25
|
-
|
26
22
|
private static OCI oci;
|
27
23
|
private static BulkOCI bulkOci;
|
28
24
|
|
@@ -88,7 +84,7 @@ public class OCIWrapper
|
|
88
84
|
|
89
85
|
Platform platform = Platform.getNativePlatform();
|
90
86
|
|
91
|
-
File folder =
|
87
|
+
File folder = AbstractJdbcOutputPlugin.findPluginRoot(getClass());
|
92
88
|
folder = new File(new File(new File(new File(folder ,"lib"), "embulk"), "native"), platform.getName());
|
93
89
|
|
94
90
|
File file = new File(folder, System.mapLibraryName(libraryName));
|
@@ -101,30 +97,6 @@ public class OCIWrapper
|
|
101
97
|
return LibraryLoader.create(BulkOCI.class).search(folder.getAbsolutePath()).failImmediately().load(libraryName);
|
102
98
|
}
|
103
99
|
|
104
|
-
private File getPluginRoot()
|
105
|
-
{
|
106
|
-
try {
|
107
|
-
URL url = getClass().getResource("/" + getClass().getName().replace('.', '/') + ".class");
|
108
|
-
if (url.toString().startsWith("jar:")) {
|
109
|
-
url = new URL(url.toString().replaceAll("^jar:", "").replaceAll("![^!]*$", ""));
|
110
|
-
}
|
111
|
-
|
112
|
-
File folder = new File(url.toURI()).getParentFile();
|
113
|
-
for (;; folder = folder.getParentFile()) {
|
114
|
-
if (folder == null) {
|
115
|
-
String message = String.format("OCI : %s folder not found.", PLUGIN_NAME);
|
116
|
-
throw new RuntimeException(message);
|
117
|
-
}
|
118
|
-
|
119
|
-
if (folder.getName().startsWith(PLUGIN_NAME)) {
|
120
|
-
return folder;
|
121
|
-
}
|
122
|
-
}
|
123
|
-
} catch (MalformedURLException | URISyntaxException e) {
|
124
|
-
throw new RuntimeException(e);
|
125
|
-
}
|
126
|
-
}
|
127
|
-
|
128
100
|
public void open(String dbName, String userName, String password) throws SQLException
|
129
101
|
{
|
130
102
|
Pointer envHandlePointer = createPointerPointer();
|
@@ -27,7 +27,7 @@ public class OracleTests
|
|
27
27
|
try {
|
28
28
|
Class.forName("oracle.jdbc.OracleDriver");
|
29
29
|
} catch (ClassNotFoundException e) {
|
30
|
-
throw new RuntimeException("You should put 'ojdbc7.jar' in 'embulk-output-oracle/
|
30
|
+
throw new RuntimeException("You should put 'ojdbc7.jar' in 'embulk-output-oracle/test_jdbc_driver' directory in order to test.");
|
31
31
|
}
|
32
32
|
|
33
33
|
Path sqlFile = embulk.createTempFile("sql");
|
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.7.
|
4
|
+
version: 0.7.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Inserts or updates records to a table.
|
14
14
|
email:
|
@@ -19,8 +19,8 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- README.md
|
21
21
|
- build.gradle
|
22
|
-
- classpath/embulk-output-jdbc-0.7.
|
23
|
-
- classpath/embulk-output-oracle-0.7.
|
22
|
+
- classpath/embulk-output-jdbc-0.7.13.jar
|
23
|
+
- classpath/embulk-output-oracle-0.7.13.jar
|
24
24
|
- lib/embulk/native/x86_64-linux/libembulk-output-oracle-oci.so
|
25
25
|
- lib/embulk/native/x86_64-windows/embulk-output-oracle-oci.dll
|
26
26
|
- lib/embulk/output/oracle.rb
|
Binary file
|
Binary file
|