sql上报数据3

private boolean ociSqlldr(String path, AbstractSqlLoad sqlload)
{
// 定义处理状态
boolean result = false;
try
{
sqlload.setDirectoryFile(getSqlLoadDirectory(), fileName,
getColumn(path));
// 设置用户名、密码、主机IP等参数
sqlload.setUseId(uName, passwd, getOraNetServerName());
// SQLLOAD 加载
result = sqlload.preform();
}
catch (Throwable e)
{
logger.error("Sqlload datafile " + this.fileName + " failed", e);
}
return result;
}

/**
* 使用调用oracle sqlldr工具的方式把数据入库。
* @param tableName 对应的数据库表名
* @param sqlldrFilePath sqlldr数据文件路径。
* @return 入库成功返回true,否则false
*/
private boolean oracleSqlldr(String tableName, String sqlldrFilePath,
AbstractSqlLoad sqlload)
{
// 定义处理状态
boolean result = false;

// 设置用户名、密码、主机IP等参数
sqlload.setUseId(uName, passwd, getOraNetServerName());

// 生成控制文件
GenOraCtrlFile writeCtl = new GenOraCtrlFile();

try
{
ctlFileName = (writeCtl.writeCtl(new File(getSqlLoadDirectory(),
fileName).getPath(), tableName)).getPath();
sqlload.setHome(DASProperties.getOracle_home());
sqlload.setCtlFile(ctlFileName);

// 获取日志文件名
/** SqlLoad日志文件名 */
String logFileName = configOracleLogFile();

// 设置要生成的log日志文件
sqlload.setLogFile(logFileName);

// 设置要生成的bad文件
sqlload.setBadFile(configOracleBadFile());

if (db.equalsIgnoreCase(SCHEMA_DPI_RPT))
{
// 实时流量 设置Direct=false
sqlload.setDirect(false);
}
else
{
// 默认设置Direct=true
sqlload.setDirect(true);
}

// SQLLOAD 加载
result = sqlload.preform();

// 如果数据文件入库失败,把sqlLoad的日志文件写到DAS日志文件中
if (!result)
{
this.readSqlLoadErrLog(logFileName);
}

/** 删除SqlLoad日志文件 */
if (isNeedDelLogFile())
{
File logFile = new File(logFileName);
if (!FileUtil.delete(logFile))
{
logger.error("delete log file failed! the file name is "
+ logFile.getName());
}
}

// 判断load子进程是否挂死或超时
if (sqlload.isTimeOut())
{
throw new IllegalThreadStateException(
"The oracle sqlldr prcess is not determined!");
}

}
catch (Throwable e)
{
logger.error("Sqlload datafile " + this.fileName + " failed", e);
}

return result;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值