首先鄙视甲骨文,这么多钱的公司,不做一个rust库,还要社区帮忙。有个开源的rust库,叫oracle,但是并不是甲骨文做的。
rust"> // 定义连接字符串
let conn_str1 = format!("{}:{}/{}", params.host, params.port, params.database);
let conn_str = conn_str1.as_str();
// 建立连接
let conn = Connection::connect(params.user, params.password, conn_str).map_err(|e| {
//debug!("无法连接到oracle {}", e);
ApiError::InternalError(format!("无法连接到oracle: {}", e))
})?;
let sql = "SELECT object_name AS \"table_name\", object_type AS \"table_type\"
FROM user_objects
WHERE object_type IN ('TABLE', 'VIEW')
ORDER BY object_type, object_name";
let l1 = conn.query(sqlcx, &[]).map_err(|e| {
//debug!("数据查询失败 {} sql:{}", e, sql);
ApiError::InternalError(format!("数据查询失败: {} sql:{}", e, sql))
})?;
//debug!("get_data_sql语句:{}", sql);
let json_results = rows_to_json_oracle(l1)
.map_err(|e| ApiError::InternalError(format!("JSON转换失败: {}", e)))?;
let json_data = json!({
"data": json_results
});
经过测试oracle这个rust库,也没有问题,可以放心使用。同样的问题,批量插入做得不好。
代码取自hpctb