提交 3c58ffba authored 作者: taojinlong's avatar taojinlong

feat: 支持oracle

上级 b57e71ce
......@@ -26,6 +26,7 @@ public class OracleQueryProvider extends QueryProvider {
public Integer transFieldType(String field) {
switch (field) {
case "CHAR":
case "VARCHAR2":
case "VARCHAR":
case "TEXT":
case "TINYTEXT":
......@@ -69,7 +70,7 @@ public class OracleQueryProvider extends QueryProvider {
@Override
public String createSQLPreview(String sql, String orderBy) {
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY null " + " LIMIT 0,1000";
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " WHERE rownum <= 1000";
}
@Override
......@@ -102,7 +103,7 @@ public class OracleQueryProvider extends QueryProvider {
}
return stringBuilder.toString();
}).toArray(String[]::new);
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table);
return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table);
}
@Override
......@@ -112,7 +113,7 @@ public class OracleQueryProvider extends QueryProvider {
@Override
public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) {
return createQuerySQL(table, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
return createQuerySQL(table, fields) + " where rownum <= " + page * realSize + " minus " + createQuerySQL(table, fields) + " where rownum <= " + (page - 1) * pageSize;
}
@Override
......
......@@ -649,8 +649,6 @@ public class ExtractDataService {
break;
case oracle:
OracleConfigration oracleConfigration = new Gson().fromJson(datasource.getConfiguration(), OracleConfigration.class);
System.out.println(new Gson().toJson(oracleConfigration));
System.out.println(oracleConfigration.getConnectionType().equalsIgnoreCase("serviceName"));
if(oracleConfigration.getConnectionType().equalsIgnoreCase("serviceName")){
String database = "(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE_HOSTNAME)(PORT = ORACLE_PORT))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = ORACLE_SERVICE_NAME )))".replace("ORACLE_HOSTNAME", oracleConfigration.getHost()).replace("ORACLE_PORT", oracleConfigration.getPort().toString()).replace("ORACLE_SERVICE_NAME", oracleConfigration.getDataBase());
dataMeta = new DatabaseMeta("db", "ORACLE", "Native", "", database, "-1", oracleConfigration.getUsername(), oracleConfigration.getPassword());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论