embulk-output-oracle 0.2.4 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +155 -110
- data/build.gradle +6 -6
- data/classpath/embulk-output-jdbc-0.3.0.jar +0 -0
- data/classpath/embulk-output-oracle-0.3.0.jar +0 -0
- data/lib/embulk/output/oracle.rb +3 -3
- data/src/main/cpp/common/dir-path-load.cpp +424 -424
- data/src/main/cpp/common/dir-path-load.h +36 -36
- data/src/main/cpp/common/embulk-output-oracle.cpp +196 -196
- data/src/main/cpp/common/org_embulk_output_oracle_oci_OCI.h +77 -77
- data/src/main/cpp/linux/build.sh +21 -21
- data/src/main/cpp/win/build.bat +31 -31
- data/src/main/cpp/win/dllmain.cpp +25 -25
- data/src/main/cpp/win/embulk-output-oracle.sln +39 -39
- data/src/main/cpp/win/embulk-output-oracle.vcxproj +175 -175
- data/src/main/java/org/embulk/output/OracleOutputPlugin.java +22 -66
- data/src/main/java/org/embulk/output/oracle/DirectBatchInsert.java +289 -289
- data/src/main/java/org/embulk/output/oracle/InsertMethod.java +8 -8
- data/src/main/java/org/embulk/output/oracle/OracleCharset.java +32 -19
- data/src/main/java/org/embulk/output/oracle/OracleOutputConnection.java +165 -134
- data/src/main/java/org/embulk/output/oracle/OracleOutputConnector.java +49 -49
- data/src/main/java/org/embulk/output/oracle/TimestampFormat.java +37 -37
- data/src/main/java/org/embulk/output/oracle/oci/ColumnDefinition.java +26 -26
- data/src/main/java/org/embulk/output/oracle/oci/OCI.java +139 -139
- data/src/main/java/org/embulk/output/oracle/oci/OCIManager.java +64 -64
- data/src/main/java/org/embulk/output/oracle/oci/OCIWrapper.java +96 -96
- data/src/main/java/org/embulk/output/oracle/oci/RowBuffer.java +99 -99
- data/src/main/java/org/embulk/output/oracle/oci/TableDefinition.java +24 -24
- data/src/test/cpp/common/embulk-output-oracle-test.cpp +69 -69
- data/src/test/cpp/linux/build.sh +19 -19
- data/src/test/cpp/win/build.bat +28 -28
- data/src/test/cpp/win/embulk-output-oracle-test.vcxproj +154 -154
- data/src/test/java/org/embulk/input/filesplit/LocalFileSplitInputPlugin.java +187 -187
- data/src/test/java/org/embulk/input/filesplit/PartialFile.java +49 -49
- data/src/test/java/org/embulk/input/filesplit/PartialFileInputStream.java +154 -154
- data/src/test/java/org/embulk/output/oracle/ChildFirstClassLoader.java +42 -42
- data/src/test/java/org/embulk/output/oracle/EmbulkPluginTester.java +120 -120
- data/src/test/java/org/embulk/output/oracle/EmptyConfigSource.java +100 -100
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java +172 -161
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTestImpl.java +445 -413
- data/src/test/java/org/embulk/output/oracle/TimestampFormatTest.java +57 -57
- data/src/test/resources/data/test1/test1.csv +3 -3
- data/src/test/resources/yml/test-insert-direct.yml +26 -26
- data/src/test/resources/yml/test-insert-oci-split.yml +26 -26
- data/src/test/resources/yml/test-insert-oci.yml +26 -26
- data/src/test/resources/yml/test-insert.yml +25 -25
- data/src/test/resources/yml/test-replace-long-name-multibyte.yml +25 -0
- data/src/test/resources/yml/test-replace-long-name.yml +25 -25
- data/src/test/resources/yml/test-replace.yml +25 -25
- data/src/test/resources/yml/test-string-timestamp.yml +25 -0
- data/src/test/resources/yml/test-url.yml +24 -24
- metadata +6 -5
- data/classpath/embulk-output-jdbc-0.2.4.jar +0 -0
- data/classpath/embulk-output-oracle-0.2.4.jar +0 -0
- data/src/main/java/org/embulk/output/oracle/setter/OracleColumnSetterFactory.java +0 -31
@@ -1,99 +1,99 @@
|
|
1
|
-
package org.embulk.output.oracle.oci;
|
2
|
-
|
3
|
-
import java.nio.ByteBuffer;
|
4
|
-
import java.nio.charset.Charset;
|
5
|
-
|
6
|
-
public class RowBuffer
|
7
|
-
{
|
8
|
-
private final TableDefinition table;
|
9
|
-
private final int rowCount;
|
10
|
-
private final byte[] buffer;
|
11
|
-
private int currentRow = 0;
|
12
|
-
private int currentColumn = 0;
|
13
|
-
private int currentPosition = 0;
|
14
|
-
private final Charset charset;
|
15
|
-
|
16
|
-
|
17
|
-
public RowBuffer(TableDefinition table, int rowCount, Charset charset)
|
18
|
-
{
|
19
|
-
this.table = table;
|
20
|
-
this.rowCount = rowCount;
|
21
|
-
this.charset = charset;
|
22
|
-
|
23
|
-
int rowSize = 0;
|
24
|
-
for (ColumnDefinition column : table.columns) {
|
25
|
-
rowSize += column.columnSize;
|
26
|
-
}
|
27
|
-
|
28
|
-
buffer = new byte[rowSize * rowCount];
|
29
|
-
}
|
30
|
-
|
31
|
-
public void addValue(int value)
|
32
|
-
{
|
33
|
-
if (isFull()) {
|
34
|
-
throw new IllegalStateException();
|
35
|
-
}
|
36
|
-
|
37
|
-
buffer[currentPosition] = (byte)value;
|
38
|
-
buffer[currentPosition + 1] = (byte)(value >> 8);
|
39
|
-
buffer[currentPosition + 2] = (byte)(value >> 16);
|
40
|
-
buffer[currentPosition + 3] = (byte)(value >> 24);
|
41
|
-
|
42
|
-
next();
|
43
|
-
}
|
44
|
-
|
45
|
-
public void addValue(String value)
|
46
|
-
{
|
47
|
-
if (isFull()) {
|
48
|
-
throw new IllegalStateException();
|
49
|
-
}
|
50
|
-
|
51
|
-
ByteBuffer bytes = charset.encode(value);
|
52
|
-
int length = bytes.remaining();
|
53
|
-
// TODO:warning or error if truncated
|
54
|
-
bytes.get(buffer, currentPosition, length);
|
55
|
-
if (length < table.columns[currentColumn].columnSize) {
|
56
|
-
buffer[currentPosition + length] = 0;
|
57
|
-
}
|
58
|
-
|
59
|
-
next();
|
60
|
-
}
|
61
|
-
|
62
|
-
private void next()
|
63
|
-
{
|
64
|
-
currentPosition += table.columns[currentColumn].columnSize;
|
65
|
-
currentColumn++;
|
66
|
-
if (currentColumn == table.columns.length) {
|
67
|
-
currentColumn = 0;
|
68
|
-
currentRow++;
|
69
|
-
}
|
70
|
-
}
|
71
|
-
|
72
|
-
public byte[] getBuffer()
|
73
|
-
{
|
74
|
-
return buffer;
|
75
|
-
}
|
76
|
-
|
77
|
-
public int getCurrentColumn()
|
78
|
-
{
|
79
|
-
return currentColumn;
|
80
|
-
}
|
81
|
-
|
82
|
-
public int getRowCount()
|
83
|
-
{
|
84
|
-
return currentRow;
|
85
|
-
}
|
86
|
-
|
87
|
-
public boolean isFull()
|
88
|
-
{
|
89
|
-
return currentRow >= rowCount;
|
90
|
-
}
|
91
|
-
|
92
|
-
public void clear()
|
93
|
-
{
|
94
|
-
currentPosition = 0;
|
95
|
-
currentRow = 0;
|
96
|
-
currentColumn = 0;
|
97
|
-
}
|
98
|
-
|
99
|
-
}
|
1
|
+
package org.embulk.output.oracle.oci;
|
2
|
+
|
3
|
+
import java.nio.ByteBuffer;
|
4
|
+
import java.nio.charset.Charset;
|
5
|
+
|
6
|
+
public class RowBuffer
|
7
|
+
{
|
8
|
+
private final TableDefinition table;
|
9
|
+
private final int rowCount;
|
10
|
+
private final byte[] buffer;
|
11
|
+
private int currentRow = 0;
|
12
|
+
private int currentColumn = 0;
|
13
|
+
private int currentPosition = 0;
|
14
|
+
private final Charset charset;
|
15
|
+
|
16
|
+
|
17
|
+
public RowBuffer(TableDefinition table, int rowCount, Charset charset)
|
18
|
+
{
|
19
|
+
this.table = table;
|
20
|
+
this.rowCount = rowCount;
|
21
|
+
this.charset = charset;
|
22
|
+
|
23
|
+
int rowSize = 0;
|
24
|
+
for (ColumnDefinition column : table.columns) {
|
25
|
+
rowSize += column.columnSize;
|
26
|
+
}
|
27
|
+
|
28
|
+
buffer = new byte[rowSize * rowCount];
|
29
|
+
}
|
30
|
+
|
31
|
+
public void addValue(int value)
|
32
|
+
{
|
33
|
+
if (isFull()) {
|
34
|
+
throw new IllegalStateException();
|
35
|
+
}
|
36
|
+
|
37
|
+
buffer[currentPosition] = (byte)value;
|
38
|
+
buffer[currentPosition + 1] = (byte)(value >> 8);
|
39
|
+
buffer[currentPosition + 2] = (byte)(value >> 16);
|
40
|
+
buffer[currentPosition + 3] = (byte)(value >> 24);
|
41
|
+
|
42
|
+
next();
|
43
|
+
}
|
44
|
+
|
45
|
+
public void addValue(String value)
|
46
|
+
{
|
47
|
+
if (isFull()) {
|
48
|
+
throw new IllegalStateException();
|
49
|
+
}
|
50
|
+
|
51
|
+
ByteBuffer bytes = charset.encode(value);
|
52
|
+
int length = bytes.remaining();
|
53
|
+
// TODO:warning or error if truncated
|
54
|
+
bytes.get(buffer, currentPosition, length);
|
55
|
+
if (length < table.columns[currentColumn].columnSize) {
|
56
|
+
buffer[currentPosition + length] = 0;
|
57
|
+
}
|
58
|
+
|
59
|
+
next();
|
60
|
+
}
|
61
|
+
|
62
|
+
private void next()
|
63
|
+
{
|
64
|
+
currentPosition += table.columns[currentColumn].columnSize;
|
65
|
+
currentColumn++;
|
66
|
+
if (currentColumn == table.columns.length) {
|
67
|
+
currentColumn = 0;
|
68
|
+
currentRow++;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
public byte[] getBuffer()
|
73
|
+
{
|
74
|
+
return buffer;
|
75
|
+
}
|
76
|
+
|
77
|
+
public int getCurrentColumn()
|
78
|
+
{
|
79
|
+
return currentColumn;
|
80
|
+
}
|
81
|
+
|
82
|
+
public int getRowCount()
|
83
|
+
{
|
84
|
+
return currentRow;
|
85
|
+
}
|
86
|
+
|
87
|
+
public boolean isFull()
|
88
|
+
{
|
89
|
+
return currentRow >= rowCount;
|
90
|
+
}
|
91
|
+
|
92
|
+
public void clear()
|
93
|
+
{
|
94
|
+
currentPosition = 0;
|
95
|
+
currentRow = 0;
|
96
|
+
currentColumn = 0;
|
97
|
+
}
|
98
|
+
|
99
|
+
}
|
@@ -1,24 +1,24 @@
|
|
1
|
-
package org.embulk.output.oracle.oci;
|
2
|
-
|
3
|
-
import java.util.List;
|
4
|
-
|
5
|
-
public class TableDefinition
|
6
|
-
{
|
7
|
-
|
8
|
-
public final String tableName;
|
9
|
-
public final short charsetId;
|
10
|
-
public final ColumnDefinition[] columns;
|
11
|
-
|
12
|
-
|
13
|
-
public TableDefinition(String tableName, short charsetId, ColumnDefinition... columns)
|
14
|
-
{
|
15
|
-
this.tableName = tableName;
|
16
|
-
this.charsetId = charsetId;
|
17
|
-
this.columns = columns;
|
18
|
-
}
|
19
|
-
|
20
|
-
public TableDefinition(String tableName, short charsetId, List<ColumnDefinition> columns)
|
21
|
-
{
|
22
|
-
this(tableName, charsetId, columns.toArray(new ColumnDefinition[columns.size()]));
|
23
|
-
}
|
24
|
-
}
|
1
|
+
package org.embulk.output.oracle.oci;
|
2
|
+
|
3
|
+
import java.util.List;
|
4
|
+
|
5
|
+
public class TableDefinition
|
6
|
+
{
|
7
|
+
|
8
|
+
public final String tableName;
|
9
|
+
public final short charsetId;
|
10
|
+
public final ColumnDefinition[] columns;
|
11
|
+
|
12
|
+
|
13
|
+
public TableDefinition(String tableName, short charsetId, ColumnDefinition... columns)
|
14
|
+
{
|
15
|
+
this.tableName = tableName;
|
16
|
+
this.charsetId = charsetId;
|
17
|
+
this.columns = columns;
|
18
|
+
}
|
19
|
+
|
20
|
+
public TableDefinition(String tableName, short charsetId, List<ColumnDefinition> columns)
|
21
|
+
{
|
22
|
+
this(tableName, charsetId, columns.toArray(new ColumnDefinition[columns.size()]));
|
23
|
+
}
|
24
|
+
}
|
@@ -1,69 +1,69 @@
|
|
1
|
-
#include <stdio.h>
|
2
|
-
#include <string.h>
|
3
|
-
#include <dir-path-load.h>
|
4
|
-
|
5
|
-
|
6
|
-
static int test(EMBULK_OUTPUT_ORACLE_OCI_CONTEXT *context, const char *db, const char *user, const char *pass, const char *csvFileName)
|
7
|
-
{
|
8
|
-
if (embulk_output_oracle_prepareDirPathCtx(context, db, user, pass)) {
|
9
|
-
return OCI_ERROR;
|
10
|
-
}
|
11
|
-
|
12
|
-
EMBULK_OUTPUT_ORACLE_OCI_COL_DEF colDefs[] = {
|
13
|
-
{"ID", SQLT_INT, 4},
|
14
|
-
//{"ID", SQLT_CHR, 8},
|
15
|
-
{"NUM", SQLT_INT, 4},
|
16
|
-
//{"NUM", SQLT_CHR, 12},
|
17
|
-
{"VALUE1", SQLT_CHR, 60},
|
18
|
-
{"VALUE2", SQLT_CHR, 60},
|
19
|
-
{"VALUE3", SQLT_CHR, 60},
|
20
|
-
{"VALUE4", SQLT_CHR, 60},
|
21
|
-
{"VALUE5", SQLT_CHR, 60},
|
22
|
-
{"VALUE6", SQLT_CHR, 60},
|
23
|
-
{"VALUE7", SQLT_CHR, 60},
|
24
|
-
{"VALUE8", SQLT_CHR, 60},
|
25
|
-
{"VALUE9", SQLT_CHR, 60},
|
26
|
-
{"VALUE10", SQLT_CHR, 60},
|
27
|
-
{NULL, 0, 0}
|
28
|
-
};
|
29
|
-
if (embulk_output_oracle_prepareDirPathStream(context, "EXAMPLE", 832, colDefs)) {
|
30
|
-
return OCI_ERROR;
|
31
|
-
}
|
32
|
-
|
33
|
-
if (embulk_output_oracle_loadCSV(context, colDefs, csvFileName)) {
|
34
|
-
return OCI_ERROR;
|
35
|
-
}
|
36
|
-
|
37
|
-
if (embulk_output_oracle_commitDirPath(context)) {
|
38
|
-
return OCI_ERROR;
|
39
|
-
}
|
40
|
-
|
41
|
-
return OCI_SUCCESS;
|
42
|
-
}
|
43
|
-
|
44
|
-
|
45
|
-
int main(int argc, char* argv[])
|
46
|
-
{
|
47
|
-
sword major_version;
|
48
|
-
sword minor_version;
|
49
|
-
sword update_num;
|
50
|
-
sword patch_num;
|
51
|
-
sword port_update_num;
|
52
|
-
OCIClientVersion(&major_version, &minor_version, &update_num, &patch_num, &port_update_num);
|
53
|
-
printf("OCI client version = %d.%d.%d.%d.%d\r\n", major_version, minor_version, update_num, patch_num, port_update_num);
|
54
|
-
|
55
|
-
if (argc < 5) {
|
56
|
-
printf("embulk-output-oracle-test <db> <user> <password> <csv file name>\r\n");
|
57
|
-
return OCI_ERROR;
|
58
|
-
}
|
59
|
-
|
60
|
-
EMBULK_OUTPUT_ORACLE_OCI_CONTEXT context;
|
61
|
-
memset(&context, 0, sizeof(EMBULK_OUTPUT_ORACLE_OCI_CONTEXT));
|
62
|
-
int result = test(&context, argv[1], argv[2], argv[3], argv[4]);
|
63
|
-
if (result == OCI_ERROR) {
|
64
|
-
printf("%s\r\n", context.message);
|
65
|
-
}
|
66
|
-
embulk_output_oracle_freeDirPathHandles(&context);
|
67
|
-
return result;
|
68
|
-
}
|
69
|
-
|
1
|
+
#include <stdio.h>
|
2
|
+
#include <string.h>
|
3
|
+
#include <dir-path-load.h>
|
4
|
+
|
5
|
+
|
6
|
+
static int test(EMBULK_OUTPUT_ORACLE_OCI_CONTEXT *context, const char *db, const char *user, const char *pass, const char *csvFileName)
|
7
|
+
{
|
8
|
+
if (embulk_output_oracle_prepareDirPathCtx(context, db, user, pass)) {
|
9
|
+
return OCI_ERROR;
|
10
|
+
}
|
11
|
+
|
12
|
+
EMBULK_OUTPUT_ORACLE_OCI_COL_DEF colDefs[] = {
|
13
|
+
{"ID", SQLT_INT, 4},
|
14
|
+
//{"ID", SQLT_CHR, 8},
|
15
|
+
{"NUM", SQLT_INT, 4},
|
16
|
+
//{"NUM", SQLT_CHR, 12},
|
17
|
+
{"VALUE1", SQLT_CHR, 60},
|
18
|
+
{"VALUE2", SQLT_CHR, 60},
|
19
|
+
{"VALUE3", SQLT_CHR, 60},
|
20
|
+
{"VALUE4", SQLT_CHR, 60},
|
21
|
+
{"VALUE5", SQLT_CHR, 60},
|
22
|
+
{"VALUE6", SQLT_CHR, 60},
|
23
|
+
{"VALUE7", SQLT_CHR, 60},
|
24
|
+
{"VALUE8", SQLT_CHR, 60},
|
25
|
+
{"VALUE9", SQLT_CHR, 60},
|
26
|
+
{"VALUE10", SQLT_CHR, 60},
|
27
|
+
{NULL, 0, 0}
|
28
|
+
};
|
29
|
+
if (embulk_output_oracle_prepareDirPathStream(context, "EXAMPLE", 832, colDefs)) {
|
30
|
+
return OCI_ERROR;
|
31
|
+
}
|
32
|
+
|
33
|
+
if (embulk_output_oracle_loadCSV(context, colDefs, csvFileName)) {
|
34
|
+
return OCI_ERROR;
|
35
|
+
}
|
36
|
+
|
37
|
+
if (embulk_output_oracle_commitDirPath(context)) {
|
38
|
+
return OCI_ERROR;
|
39
|
+
}
|
40
|
+
|
41
|
+
return OCI_SUCCESS;
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
int main(int argc, char* argv[])
|
46
|
+
{
|
47
|
+
sword major_version;
|
48
|
+
sword minor_version;
|
49
|
+
sword update_num;
|
50
|
+
sword patch_num;
|
51
|
+
sword port_update_num;
|
52
|
+
OCIClientVersion(&major_version, &minor_version, &update_num, &patch_num, &port_update_num);
|
53
|
+
printf("OCI client version = %d.%d.%d.%d.%d\r\n", major_version, minor_version, update_num, patch_num, port_update_num);
|
54
|
+
|
55
|
+
if (argc < 5) {
|
56
|
+
printf("embulk-output-oracle-test <db> <user> <password> <csv file name>\r\n");
|
57
|
+
return OCI_ERROR;
|
58
|
+
}
|
59
|
+
|
60
|
+
EMBULK_OUTPUT_ORACLE_OCI_CONTEXT context;
|
61
|
+
memset(&context, 0, sizeof(EMBULK_OUTPUT_ORACLE_OCI_CONTEXT));
|
62
|
+
int result = test(&context, argv[1], argv[2], argv[3], argv[4]);
|
63
|
+
if (result == OCI_ERROR) {
|
64
|
+
printf("%s\r\n", context.message);
|
65
|
+
}
|
66
|
+
embulk_output_oracle_freeDirPathHandles(&context);
|
67
|
+
return result;
|
68
|
+
}
|
69
|
+
|
data/src/test/cpp/linux/build.sh
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
# gcc, g++ and Oracle Instant Client SDK are requred.
|
2
|
-
#
|
3
|
-
# ln libocci.so.x.x libocci.so
|
4
|
-
# ln libclntsh.so.x.x libclntsh.so
|
5
|
-
#
|
6
|
-
|
7
|
-
if [ "$JAVA_HOME" = "" ]
|
8
|
-
then
|
9
|
-
echo "You should set the environment variable 'JAVA_HOME'."
|
10
|
-
exit 1
|
11
|
-
fi
|
12
|
-
|
13
|
-
if [ "$OCI_PATH" = "" ]
|
14
|
-
then
|
15
|
-
echo "You should set the environment variable 'OCI_PATH'."
|
16
|
-
exit 1
|
17
|
-
fi
|
18
|
-
|
19
|
-
gcc -I. -I"$JAVA_HOME/include" -I"$OCI_PATH/sdk/include" -I../../../main/cpp/common -L"$OCI_PATH" ../common/embulk-output-oracle-test.cpp ../../../main/cpp/common/embulk-output-oracle.cpp ../../../main/cpp/common/dir-path-load.cpp -locci -lclntsh -lstdc++ -o embulk-output-oracle-test
|
1
|
+
# gcc, g++ and Oracle Instant Client SDK are requred.
|
2
|
+
#
|
3
|
+
# ln libocci.so.x.x libocci.so
|
4
|
+
# ln libclntsh.so.x.x libclntsh.so
|
5
|
+
#
|
6
|
+
|
7
|
+
if [ "$JAVA_HOME" = "" ]
|
8
|
+
then
|
9
|
+
echo "You should set the environment variable 'JAVA_HOME'."
|
10
|
+
exit 1
|
11
|
+
fi
|
12
|
+
|
13
|
+
if [ "$OCI_PATH" = "" ]
|
14
|
+
then
|
15
|
+
echo "You should set the environment variable 'OCI_PATH'."
|
16
|
+
exit 1
|
17
|
+
fi
|
18
|
+
|
19
|
+
gcc -I. -I"$JAVA_HOME/include" -I"$OCI_PATH/sdk/include" -I../../../main/cpp/common -L"$OCI_PATH" ../common/embulk-output-oracle-test.cpp ../../../main/cpp/common/embulk-output-oracle.cpp ../../../main/cpp/common/dir-path-load.cpp -locci -lclntsh -lstdc++ -o embulk-output-oracle-test
|
data/src/test/cpp/win/build.bat
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
@ECHO OFF
|
2
|
-
|
3
|
-
REM You should set the environment variable 'PATH' to CL.exe(x86_amd64) of Visual Studio.
|
4
|
-
|
5
|
-
IF "%JAVA_HOME%" == "" (
|
6
|
-
ECHO "You should set the environment variable 'JAVA_HOME'."
|
7
|
-
EXIT /B 1
|
8
|
-
)
|
9
|
-
|
10
|
-
|
11
|
-
IF "%OCI_SDK_PATH%" == "" (
|
12
|
-
ECHO "You should set the environment variable 'OCI_SDK_PATH'."
|
13
|
-
EXIT /B 1
|
14
|
-
)
|
15
|
-
|
16
|
-
IF "%MSVC_PATH%" == "" (
|
17
|
-
ECHO "You should set the environment variable 'MSVC_PATH'."
|
18
|
-
ECHO "For example : SET MSVC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC"
|
19
|
-
EXIT /B 1
|
20
|
-
)
|
21
|
-
|
22
|
-
IF "%MSSDK_PATH%" == "" (
|
23
|
-
ECHO "You should set the environment variable 'MSSDK_PATH'."
|
24
|
-
ECHO "For example : SET MSSDK_PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A"
|
25
|
-
EXIT /B 1
|
26
|
-
)
|
27
|
-
|
28
|
-
|
1
|
+
@ECHO OFF
|
2
|
+
|
3
|
+
REM You should set the environment variable 'PATH' to CL.exe(x86_amd64) of Visual Studio.
|
4
|
+
|
5
|
+
IF "%JAVA_HOME%" == "" (
|
6
|
+
ECHO "You should set the environment variable 'JAVA_HOME'."
|
7
|
+
EXIT /B 1
|
8
|
+
)
|
9
|
+
|
10
|
+
|
11
|
+
IF "%OCI_SDK_PATH%" == "" (
|
12
|
+
ECHO "You should set the environment variable 'OCI_SDK_PATH'."
|
13
|
+
EXIT /B 1
|
14
|
+
)
|
15
|
+
|
16
|
+
IF "%MSVC_PATH%" == "" (
|
17
|
+
ECHO "You should set the environment variable 'MSVC_PATH'."
|
18
|
+
ECHO "For example : SET MSVC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC"
|
19
|
+
EXIT /B 1
|
20
|
+
)
|
21
|
+
|
22
|
+
IF "%MSSDK_PATH%" == "" (
|
23
|
+
ECHO "You should set the environment variable 'MSSDK_PATH'."
|
24
|
+
ECHO "For example : SET MSSDK_PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A"
|
25
|
+
EXIT /B 1
|
26
|
+
)
|
27
|
+
|
28
|
+
|
29
29
|
CL /I"..\..\..\main\cpp\common" /I"%MSSDK_PATH%\Include" /I"%MSVC_PATH%\include" /I"%OCI_SDK_PATH%\include" /I"%JAVA_HOME%\include" /I"%JAVA_HOME%\include\win32" /Zi /nologo /W3 /WX- /O2 /Oi /GL /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "EMBULKOUTPUTORACLE_EXPORTS" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /Gm- /EHsc /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Gd /errorReport:queue ..\common\embulk-output-oracle-test.cpp ..\..\..\main\cpp\common\dir-path-load.cpp /link /LIBPATH:"%MSVC_PATH%\lib\amd64" /LIBPATH:"%MSSDK_PATH%\Lib\x64" /LIBPATH:"%OCI_SDK_PATH%\lib\msvc" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Oracle\instantclient_12_1\x64\sdk\lib\msvc" "oci.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /ALLOWISOLATION /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /ERRORREPORT:QUEUE
|