求助,jdbctemplate调用sqlServer存储过程传入表参数,不支持从 UNKNOWN 到 OTHER 的转换,要怎么正确传入表参数
List<TableBoxVO> tableBoxVOS = new ArrayList<>();
List<TableWipItemTypeVO> tableWipItemTypeVOS = new ArrayList<>();
TableBoxVO tableBoxVO;
TableWipItemTypeVO tableWipItemTypeVO;
Map<String, Object> tableData;
Map<String, Object> tableBoxData;
List<Map<String, Object>> tableValues = new ArrayList<>();
List<Map<String, Object>> tableBoxValues = new ArrayList<>();
for(BoxInfo boxInfo: processTransferVO.getTableBoxVOS()){
tableBoxData = new HashMap<>();
tableBoxData.put("FlowBox",boxInfo.getBoxCode());
tableBoxData.put("qty",boxInfo.getQty());
tableBoxVO = new TableBoxVO(boxInfo);
tableBoxVOS.add(tableBoxVO);
tableBoxValues.add(tableBoxData);
}
for(MaterialVO materialVO: processTransferVO.getTableWipItemTypeVOS()){
tableData = new HashMap<>();
tableData.put("itemID",122);
tableData.put("itemCode",null);
tableData.put("itemName",null);
tableData.put("supplierCode",null);
tableData.put("lot",null);
tableData.put("boxCode",null);
tableData.put("qty", null);
tableWipItemTypeVO = new TableWipItemTypeVO(materialVO);
tableWipItemTypeVOS.add(tableWipItemTypeVO);
tableValues.add(tableData);
}
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
.withProcedureName("saveWipProductData_Batch_p")
.declareParameters(
new SqlParameter("WipNo", Types.VARCHAR),//工单号
new SqlParameter("WipQty", Types.INTEGER),//工单数量
new SqlParameter("ItemID", Types.INTEGER),//产品Id
new SqlParameter("RouteEntry_ID", Types.INTEGER),//工艺路线表体ID
new SqlParameter("MachineID", Types.VARCHAR),//机台号
new SqlParameter("UserID", Types.VARCHAR),//用户ID
new SqlParameter("UserName", Types.VARCHAR),//用户名称
new SqlParameter("GoodProductsQty", Types.DECIMAL),//良品数
new SqlParameter("RejectsQty", Types.DECIMAL),//不良数
new SqlParameter("remark", Types.VARCHAR),//备注
new SqlParameter("CurrentBox", Types.VARCHAR),//当前框
new SqlParameter("FlowBox", Types.VARCHAR),//转移框
new SqlParameter("dt", Types.OTHER, "Wip_Item_type")//领料信息
// new SqlParameter("dt_FlowBox_Qty", Types.OTHER, "FlowBox_Qty_type")//转移框类别
);
Map<String, Object> inParams = new HashMap<>();
inParams.put("WipNo", processTransferVO.getOrderNo());
inParams.put("WipQty", processTransferVO.getOrderQty());
inParams.put("ItemID", processTransferVO.getMaterialId());
inParams.put("RouteEntry_ID", processTransferVO.getProcessVO().getSysId());
inParams.put("MachineID", processTransferVO.getMachineId());
inParams.put("UserID", processTransferVO.getUserId());
inParams.put("UserName", processTransferVO.getUserName());
inParams.put("GoodProductsQty", processTransferVO.getGoodQty());
inParams.put("RejectsQty", 0);
inParams.put("remark", processTransferVO.getRemark());
inParams.put("CurrentBox", processTransferVO.getCurrentBox());
inParams.put("FlowBox", processTransferVO.getFlowBox());
inParams.put("dt", tableValues);
// inParams.put("dt_FlowBox_Qty", new MapSqlParameterSource(tableBoxData));
String returnMsg = jdbcCall.execute(inParams).get("Fmsg").toString();
if(returnMsg.indexOf("保存成功") !=-1){
return new ResultVO(ResultVO.Result.SUCCESS);
}
return new ResultVO(ResultVO.Result.FAIL, returnMsg);
}

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{call saveWipProductData_Batch_p(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}]; SQL state [null]; error code [0]; 不支持从 UNKNOWN 到 OTHER 的转换。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 不支持从 UNKNOWN 到 OTHER 的转换。] with root cause
相关推荐
产业园区如何精准识别和匹配优质科技成果?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
【基于dq控制算法的并联有源滤波器】分流有源滤波器的仿真电路可以减轻谐波和无功功率(simulink仿真实现)
内容概要:本文详细介绍了基于dq控制算法的并联有源滤波器(APF)在Simulink环境下的仿真电路设计与实现过程,重点阐述了通过分流式拓扑结构有效抑制电力系统中的谐波污染并补偿无功功率的技术方案。文中深入剖析了dq变换的核心原理,将其应用于控制系统中,实现三相交流量到直流量的转换,从而简化控制器设计并提升动态响应精度。仿真模型完整构建了主电路、负载模块及控制策略三大组成部分,能够直观呈现滤波前后电流波形的改善效果,验证了该方法在提高电能质量方面的有效性与可行性。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事电能质量治理、有源滤波器研发及相关领域工程应用的技术人员。; 使用场景及目标:①用于课堂教学与课程设计,帮助学生理解dq变换机制及有源滤波器的工作原理;②为科研项目提供可复现的仿真平台,支持新型控制算法的开发与验证;③辅助企业在实际工程中优化APF产品设计,增强谐波抑制与无功补偿性能。; 阅读建议:建议结合MATLAB/Simulink环境动手搭建与调试模型,深入掌握各控制模块参数整定方法及其对系统性能的影响,可通过改变负载类型或引入非理想工况进行对比分析,以全面提升对系统稳态与动态特性的理解与掌控能力。
国央企创新负责人如何利用平台实现技术成果的精准对接与协同创新?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
中小功率逆变电源关键单元电路设计与保护策略研究【原理+PCB+程序】
内容概要:本文围绕中小功率逆变电源的关键单元电路设计与保护策略展开系统性研究,涵盖逆变电源的工作原理、硬件电路设计(包括DC-DC升压与DC-AC逆变)、SPWM正弦波调制技术、闭环控制策略(电压/电流双闭环)、系统保护机制(过压、过流、短路、过温等)以及基于STM32的嵌入式控制系统开发。研究内容整合了Simulink仿真模型、PCB设计文件与嵌入式程序代码,实现了从理论分析、仿真验证到硬件实现的完整技术链条,重点突出系统稳定性设计与多层级保护策略的协同优化,适用于逆变器产品的研发与工程实践。; 适合人群:具备电力电子、自动控制或电气工程等相关专业背景,从事电源系统设计的研发工程师、高校研究生及工程技术人员,尤其适合具有一定嵌入式系统开发经验(熟悉STM32系列单片机)且工作年限在1-5年的从业人员。; 使用场景及目标:①用于中小功率离网/并网逆变器的原型开发与产品设计;②作为高校电力电子、自动化等专业的课程设计、毕业设计或科研项目的综合性参考方案;③深入掌握SPWM调制、LC滤波器设计、PID闭环控制、系统保护逻辑等关键技术的实现方法;④结合仿真与实物平台进行波形测试与参数调试,提升电力电子系统的综合设计能力与故障排查水平。; 阅读建议:建议读者结合提供的原理图、PCB布局图与源代码同步学习,优先在Simulink中完成控制逻辑仿真,理解系统动态响应特性后再搭建实际硬件平台。重点关注保护电路的动作阈值设置与软硬件协同保护机制的实现方式,实验过程中应配合示波器、万用表等仪器观测关键节点波形,逐步优化控制参数以提升系统效率与稳定性。
vector_search_node.py
vector_search_node.py


基础编程
