diff --git a/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java b/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java
index 1b46a8bc..e33ea1a6 100755
--- a/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java
+++ b/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java
@@ -25,7 +25,9 @@ public enum DataBaseType {
Oscar("oscar", "com.oscar.Driver"),
OceanBase("oceanbase", "com.alipay.oceanbase.jdbc.Driver"),
StarRocks("starrocks", "com.mysql.jdbc.Driver"),
- Databend("databend", "com.databend.jdbc.DatabendDriver");
+ Databend("databend", "com.databend.jdbc.DatabendDriver"),
+ Sybase("sybase", "com.sybase.jdbc4.jdbc.SybDriver");
+
private String typeName;
private String driverClassName;
diff --git a/sybasereader/doc/sybasereader.md b/sybasereader/doc/sybasereader.md
index 32851e52..54156706 100644
--- a/sybasereader/doc/sybasereader.md
+++ b/sybasereader/doc/sybasereader.md
@@ -233,12 +233,12 @@ SybaseReader插件实现了从Sybase读取数据。在底层实现上,SybaseRe
| DataX 内部类型| Sybase 数据类型 |
| -------- | ----- |
-| Long |NUMBER,INTEGER,INT,SMALLINT|
-| Double |NUMERIC,DECIMAL,FLOAT,DOUBLE PRECISION,REAL|
-| String |LONG,CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2,CLOB,NCLOB,CHARACTER,CHARACTER VARYING,CHAR VARYING,NATIONAL CHARACTER,NATIONAL CHAR,NATIONAL CHARACTER VARYING,NATIONAL CHAR VARYING,NCHAR VARYING |
-| Date |TIMESTAMP,DATE |
-| Boolean |bit, bool |
-| Bytes |BLOB,BFILE,RAW,LONG RAW |
+| Long |Tinyint,Smallint,Int,Money,Smallmoney|
+| Double |Float,Real,Numeric,Decimal|
+| String |Char,Varchar,Nchar,Nvarchar,Text|
+| Date |Timestamp,Datetime,Smalldatetime|
+| Boolean |bit, bool|
+| Bytes |Binary,Varbinary,Image|
diff --git a/sybasereader/pom.xml b/sybasereader/pom.xml
new file mode 100644
index 00000000..1c826fb4
--- /dev/null
+++ b/sybasereader/pom.xml
@@ -0,0 +1,105 @@
+
+
+
+ datax-all
+ com.alibaba.datax
+ 0.0.1-SNAPSHOT
+
+ 4.0.0
+
+ sybasereader
+ sybasereader
+ jar
+
+
+ 8
+ 8
+
+
+
+
+ com.alibaba.datax
+ datax-common
+ ${datax-project-version}
+
+
+ slf4j-log4j12
+ org.slf4j
+
+
+
+
+ org.slf4j
+ slf4j-api
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+ com.alibaba.datax
+ plugin-rdbms-util
+ ${datax-project-version}
+
+
+
+ com.oracle
+ ojdbc6
+ 11.2.0.3
+
+
+ com.alibaba.datax
+ datax-common
+ 0.0.1-SNAPSHOT
+ compile
+
+
+
+ com.sybase.jconnect
+ jconn4
+ 16.0
+ system
+ ${project.basedir}/libs/jconn4-16.0.jar
+
+
+
+
+
+
+
+
+
+ maven-compiler-plugin
+
+ ${jdk-version}
+ ${jdk-version}
+ ${project-sourceEncoding}
+
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/package.xml
+
+ datax
+
+
+
+ dwzip
+ package
+
+ single
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sybasereader/src/main/assembly/package.xml b/sybasereader/src/main/assembly/package.xml
new file mode 100755
index 00000000..a954a30d
--- /dev/null
+++ b/sybasereader/src/main/assembly/package.xml
@@ -0,0 +1,35 @@
+
+
+
+ dir
+
+ false
+
+
+ src/main/resources
+
+ plugin.json
+ plugin_job_template.json
+
+ plugin/reader/oraclereader
+
+
+ target/
+
+ oraclereader-0.0.1-SNAPSHOT.jar
+
+ plugin/reader/oraclereader
+
+
+
+
+
+ false
+ plugin/reader/oraclereader/libs
+ runtime
+
+
+
diff --git a/sybasereader/src/main/java/com/alibaba/datax/plugin/reader/sybasereader/Constants.java b/sybasereader/src/main/java/com/alibaba/datax/plugin/reader/sybasereader/Constants.java
new file mode 100755
index 00000000..2de97644
--- /dev/null
+++ b/sybasereader/src/main/java/com/alibaba/datax/plugin/reader/sybasereader/Constants.java
@@ -0,0 +1,7 @@
+package com.alibaba.datax.plugin.reader.sybasereader;
+
+public class Constants {
+
+ public static final int DEFAULT_FETCH_SIZE = 1024;
+
+}
diff --git a/sybasereader/src/main/java/com/alibaba/datax/plugin/reader/sybasereader/SybaseReader.java b/sybasereader/src/main/java/com/alibaba/datax/plugin/reader/sybasereader/SybaseReader.java
new file mode 100755
index 00000000..d0bbefac
--- /dev/null
+++ b/sybasereader/src/main/java/com/alibaba/datax/plugin/reader/sybasereader/SybaseReader.java
@@ -0,0 +1,107 @@
+package com.alibaba.datax.plugin.reader.sybasereader;
+
+import com.alibaba.datax.common.plugin.RecordSender;
+import com.alibaba.datax.common.spi.Reader;
+import com.alibaba.datax.common.util.Configuration;
+import com.alibaba.datax.plugin.rdbms.util.DataBaseType;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+import com.alibaba.datax.plugin.rdbms.reader.CommonRdbmsReader;
+import com.alibaba.datax.plugin.rdbms.reader.Constant;
+
+
+public class SybaseReader extends Reader {
+
+ private static final DataBaseType DATABASE_TYPE = DataBaseType.Oracle;
+
+ public static class Job extends Reader.Job {
+ private static final Logger LOG = LoggerFactory
+ .getLogger(SybaseReader.Job.class);
+
+ private Configuration originalConfig = null;
+ private CommonRdbmsReader.Job commonRdbmsReaderJob;
+
+ @Override
+ public void init() {
+ this.originalConfig = super.getPluginJobConf();
+
+ dealFetchSize(this.originalConfig);
+
+ this.commonRdbmsReaderJob = new CommonRdbmsReader.Job(
+ DATABASE_TYPE);
+ this.commonRdbmsReaderJob.init(this.originalConfig);
+
+ }
+
+ @Override
+ public void preCheck(){
+ init();
+ this.commonRdbmsReaderJob.preCheck(this.originalConfig,DATABASE_TYPE);
+ }
+
+ @Override
+ public List split(int adviceNumber) {
+ return this.commonRdbmsReaderJob.split(this.originalConfig,
+ adviceNumber);
+ }
+
+ @Override
+ public void post() {
+ this.commonRdbmsReaderJob.post(this.originalConfig);
+ }
+
+ @Override
+ public void destroy() {
+ this.commonRdbmsReaderJob.destroy(this.originalConfig);
+ }
+
+ private void dealFetchSize(Configuration originalConfig) {
+ int fetchSize = originalConfig.getInt(
+ com.alibaba.datax.plugin.rdbms.reader.Constant.FETCH_SIZE,
+ Constants.DEFAULT_FETCH_SIZE);
+ if (fetchSize < 1) {
+ }
+ originalConfig.set(
+ com.alibaba.datax.plugin.rdbms.reader.Constant.FETCH_SIZE,
+ fetchSize);
+ }
+ }
+
+ public static class Task extends Reader.Task {
+
+ private Configuration readerSliceConfig;
+ private CommonRdbmsReader.Task commonRdbmsReaderTask;
+
+ @Override
+ public void init() {
+ this.readerSliceConfig = super.getPluginJobConf();
+ this.commonRdbmsReaderTask = new CommonRdbmsReader.Task(
+ DATABASE_TYPE ,super.getTaskGroupId(), super.getTaskId());
+ this.commonRdbmsReaderTask.init(this.readerSliceConfig);
+ }
+
+ @Override
+ public void startRead(RecordSender recordSender) {
+ int fetchSize = this.readerSliceConfig
+ .getInt(com.alibaba.datax.plugin.rdbms.reader.Constant.FETCH_SIZE);
+
+ this.commonRdbmsReaderTask.startRead(this.readerSliceConfig,
+ recordSender, super.getTaskPluginCollector(), fetchSize);
+ }
+
+ @Override
+ public void post() {
+ this.commonRdbmsReaderTask.post(this.readerSliceConfig);
+ }
+
+ @Override
+ public void destroy() {
+ this.commonRdbmsReaderTask.destroy(this.readerSliceConfig);
+ }
+
+ }
+
+}
diff --git a/sybasereader/src/main/resources/plugin.json b/sybasereader/src/main/resources/plugin.json
new file mode 100755
index 00000000..39dd61d7
--- /dev/null
+++ b/sybasereader/src/main/resources/plugin.json
@@ -0,0 +1,6 @@
+{
+ "name": "sybasereader",
+ "class": "com.alibaba.datax.plugin.reader.sybasereader.SybaseReader",
+ "description": "useScene: prod. mechanism: Jdbc connection using the database, execute select sql, retrieve data from the ResultSet. warn: The more you know about the database, the less problems you encounter.",
+ "developer": "alibaba"
+}
\ No newline at end of file
diff --git a/sybasereader/src/main/resources/plugin_job_template.json b/sybasereader/src/main/resources/plugin_job_template.json
new file mode 100644
index 00000000..5d5a1f45
--- /dev/null
+++ b/sybasereader/src/main/resources/plugin_job_template.json
@@ -0,0 +1,14 @@
+{
+ "name": "sybasereader",
+ "parameter": {
+ "username": "",
+ "password": "",
+ "column": [],
+ "connection": [
+ {
+ "table": [],
+ "jdbcUrl": []
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/sybasewriter/pom.xml b/sybasewriter/pom.xml
new file mode 100644
index 00000000..f077f52d
--- /dev/null
+++ b/sybasewriter/pom.xml
@@ -0,0 +1,19 @@
+
+
+
+ datax-all
+ com.alibaba.datax
+ 0.0.1-SNAPSHOT
+
+ 4.0.0
+
+ sybasewriter
+
+
+ 8
+ 8
+
+
+
\ No newline at end of file