You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ SSH终端执行Shell脚本触发Spring项目ORA-01861错误原因咨询

ORA-01861错误的根源分析

环境变量差异是核心诱因

IntelliJ内置SSH终端和原生SSH终端(如PowerShell/iTerm2)的关键区别在于:它会自动注入IDE相关环境变量,同时继承本地Windows系统的区域配置,比如LANG、LC_TIME这类控制日期格式的变量。而同事使用的终端完全采用服务器端Ubuntu的默认环境配置。

当Spring项目连接Oracle数据库时,如果代码中存在依赖系统默认格式的日期转换逻辑——比如使用无参的SimpleDateFormat(),或者直接将Date对象拼接进SQL语句——就会因为IntelliJ终端带来的日期格式与Oracle预期格式不匹配,触发ORA-01861错误。

快速验证方法

  • 在IntelliJ SSH终端和PowerShell中分别执行以下命令,对比输出差异:
    echo $LANG
    echo $LC_TIME
    
    你会发现IntelliJ终端的输出可能带有Windows区域特征(比如zh_CN.UTF-8),而服务器端正常终端显示的是Ubuntu默认的区域设置(比如en_US.UTF-8)。
  • 检查项目代码:查找是否存在未指定明确格式的日期处理代码,这类代码会依赖系统区域生成日期字符串,进而导致SQL格式不匹配。

IntelliJ终端的特殊行为

IntelliJ的内置SSH终端并非完全模拟原生SSH会话,即便关闭了Shell集成选项,部分本地环境变量仍会被传递到远程会话中,这是它和原生终端的本质区别,也是问题的触发点。

内容的提问来源于stack exchange,提问作者김동주

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:34:50