抽取sql的bug修改

web_backend_develope
chenlw 9 years ago
parent bd81c5caa0
commit c13b64f287

@ -99,6 +99,14 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
LIMIT #{limit} LIMIT #{limit}
</if> </if>
</select> </select>
<!-- 获取数据符合筛选条件的全部记录信息 -->
<select id="findAll" resultMap="getEntityByText">
SELECT
id,regionalism_code,city_name,district_name,system_code,system_name,data_type,data_version,submitted_batch,data_path,data_charset,collection_time,collector_name,collector_contacts,extract_status,data_year,start_year,end_year,volume_ip,volume_path
FROM data_details
ORDER BY data_details.id
</select>
<!-- 获取数据符合筛选条件的总记录条数 --> <!-- 获取数据符合筛选条件的总记录条数 -->
<select id="getLimitedDataCount" resultType="java.lang.Integer" <select id="getLimitedDataCount" resultType="java.lang.Integer"
@ -245,5 +253,17 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
and remove ='0' and remove ='0'
</update> </update>
<update id="updateExtract" parameterType="com.platform.entities.DataInfoEntity">
UPDATE
data_info
set extract_status = #{extractStatus}
<where>
regionalism_code = #{regionalismCode}
AND system_code = #{systemCode}
AND data_version = #{dataVersion}
AND remove ='0'
</where>
</update>
</mapper> </mapper>

@ -20,8 +20,12 @@ public interface DataInfoDao {
List<String> getIdIsExist(List<Integer> list)throws Exception; List<String> getIdIsExist(List<Integer> list)throws Exception;
List<DataInfoEntity> findAll()throws Exception;
int removes(List<Integer> list)throws Exception; int removes(List<Integer> list)throws Exception;
int save(DataInfoEntity data) throws Exception; int save(DataInfoEntity data) throws Exception;
int updateExtract(DataInfoEntity data) throws Exception;
} }

@ -1,9 +1,8 @@
package com.platform.entities; package com.platform.entities;
import java.util.List;
public class PagerOptions { public class PagerOptions {
private Integer currentPageNum; //当前页码 private Integer currentPageNum = 1; //当前页码
private String dataType; //数据类型 private String dataType; //数据类型

@ -47,7 +47,7 @@ public class OracleExtractHelper {
* dblink * dblink
*/ */
public void createDBLink(Connection conn, OracleConnectorParams oc) { public void createDBLink(Connection conn, OracleConnectorParams oc) {
String linkName = "LinkTo" + oc.getName(); String linkName = "LINKTO" + oc.getName();
String sql = "CREATE PUBLIC DATABASE LINK " String sql = "CREATE PUBLIC DATABASE LINK "
+ linkName + linkName
+ " CONNECT TO " + " CONNECT TO "
@ -94,7 +94,7 @@ public class OracleExtractHelper {
*/ */
public boolean createTableSpace(Connection conn, GatherOracleInfo oc) { public boolean createTableSpace(Connection conn, GatherOracleInfo oc) {
String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '" String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '"
+ Configs.GATHER_TABLESPACE_NAME + "'"; + oc.getTableName() + "'";
if (OracleConnector.execUpdateOracleSQL(conn, tmpSql)) { if (OracleConnector.execUpdateOracleSQL(conn, tmpSql)) {
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
@ -102,9 +102,9 @@ public class OracleExtractHelper {
tmpSql+"\r\n"); tmpSql+"\r\n");
return true; return true;
} else { } else {
String sql = "create tablespace " + Configs.GATHER_TABLESPACE_NAME String sql = "create tablespace " + oc.getTableName()
+ " datafile '" + Configs.GATHER_TABLESPACE_PATH + " datafile '" + Configs.GATHER_TABLESPACE_PATH
+ Configs.GATHER_TABLESPACE_NAME + ".dbf" + oc.getTableName() + ".dbf"
+ "' size 512M autoextend on next 512M maxsize unlimited"; + "' size 512M autoextend on next 512M maxsize unlimited";
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
@ -123,7 +123,7 @@ public class OracleExtractHelper {
public void createUser(Connection conn, OracleConnectorParams oc, GatherOracleInfo totalOracle) { public void createUser(Connection conn, OracleConnectorParams oc, GatherOracleInfo totalOracle) {
String strTUser = oc.getName() + totalOracle.getSuffix(); String strTUser = oc.getName() + totalOracle.getSuffix();
String sql = "Create user " + strTUser + " default tablespace " String sql = "Create user " + strTUser + " default tablespace "
+ Configs.GATHER_TABLESPACE_NAME + " identified by " + totalOracle.getTableName() + " identified by "
+ Configs.GATHER_TABLE_PASSWORD; + Configs.GATHER_TABLE_PASSWORD;
String grantSql = "grant connect, resource, dba to " + strTUser; String grantSql = "grant connect, resource, dba to " + strTUser;
@ -151,12 +151,12 @@ public class OracleExtractHelper {
String sql = "SELECT 'create table " String sql = "SELECT 'create table "
+ strTUser + strTUser
+ ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||" + ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||"
+ "'@linkTo" + "'@LINKTO"
+ oc.getName() + oc.getName()
+ ";' FROM dba_tables@linkTo" + ";' FROM dba_tables@LINKTO"
+ oc.getName() + oc.getName()
+ " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')" + " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')"
+ " and t.owner||t.table_name not in (select owner||table_name from dba_tables@linkTo" + " and t.owner||t.table_name not in (select owner||table_name from dba_tables@LINKTO"
+ oc.getName() + " where 'data_type'='CLOB')"; + oc.getName() + " where 'data_type'='CLOB')";
ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql); ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql);
FileOperateHelper FileOperateHelper

@ -5,10 +5,15 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.base.Custom4exception; import com.base.Custom4exception;
import com.base.CustomException; import com.base.CustomException;
import com.platform.dao.DataInfoDao;
import com.platform.entities.DataInfoEntity;
import com.platform.entities.DataInfoEntityMoveTmp;
import com.platform.entities.GatherOracleInfo; import com.platform.entities.GatherOracleInfo;
import com.platform.entities.OracleConnectorParams; import com.platform.entities.OracleConnectorParams;
import com.platform.kubernetes.SimpleKubeClient; import com.platform.kubernetes.SimpleKubeClient;
@ -19,6 +24,9 @@ import com.platform.utils.Bean2MapUtils;
@Service(value = "OracleExtract") @Service(value = "OracleExtract")
public class OracleExtractServiceImpl implements IOracleExtractService { public class OracleExtractServiceImpl implements IOracleExtractService {
@Resource(name = "dataInfoDao")
private DataInfoDao dataInfoDao;
/** /**
* kubernetes client * kubernetes client
*/ */
@ -42,17 +50,27 @@ public class OracleExtractServiceImpl implements IOracleExtractService {
GatherOracleInfo oracleModel = oracleConnect; GatherOracleInfo oracleModel = oracleConnect;
//采集库连接参数 //采集库连接参数
List<OracleConnectorParams> datainfos = dataInfolist; List<OracleConnectorParams> datainfos = dataInfolist;
Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + ":" Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + ":"
+ oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword()); + oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword());
for (OracleConnectorParams collectOracle : datainfos) { for (OracleConnectorParams collectOracle : datainfos) {
collectOracle.setName("J"+ collectOracle.getName().replace("-", "_")); String[] str = collectOracle.getName().split("-");
// client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成 if(str.length == 3){
oracleExtract.createDBLink(conn, collectOracle); //创建dblink DataInfoEntity data = new DataInfoEntity();
oracleExtract.createTableSpace(conn, oracleModel); //创建表空间 data.setRegionalismCode(str[0]);
oracleExtract.createUser(conn, collectOracle, oracleModel);//创建用户并授权 data.setSystemCode(Integer.valueOf(str[1]));
oracleExtract.extractColleDB(conn, collectOracle);//执行抽取 data.setDataVersion(Integer.valueOf(str[2]));
// client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "2"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成 data.setExtractStatus(1);
dataInfoDao.updateExtract(data);
collectOracle.setName("J" + collectOracle.getName().replace("-", "_"));
// client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成
oracleExtract.createDBLink(conn, collectOracle); //创建dblink
oracleExtract.createTableSpace(conn, oracleModel); //创建表空间
oracleExtract.createUser(conn, collectOracle, oracleModel);//创建用户并授权
oracleExtract.extractColleDB(conn, collectOracle);//执行抽取
// client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "2"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成
data.setExtractStatus(1);
dataInfoDao.updateExtract(data);
}
} }
isSuccess = true; isSuccess = true;
}catch(Exception e){ }catch(Exception e){

@ -48,5 +48,6 @@ public class Configs {
public static String GATHER_TABLESPACE_PATH=""; //表空间路径 public static String GATHER_TABLESPACE_PATH=""; //表空间路径
public static String GATHER_TABLE_PASSWORD=""; //登入密码 public static String GATHER_TABLE_PASSWORD="1"; //登入密码
} }

Loading…
Cancel
Save