关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

时间:2023-03-09 00:28:51
关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

一般问题(TO_DATE 和 TO_CHAR 两种格式互换)比如:

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

只要转化下格式就OK ,这里就不详细解释这两种格式的用法了!

今天把之前做好的模块拿到当地实习,不管怎么测 ,连续测试了好几个存储过程 一直报同样的错误 ,错如下:

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

然后就跟程序进行测试!

错误提示地方:关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

很明显传入的参数和存储过程的参数类型不匹配!

然后 我就按照正常的排错步骤,看是不是参数类型问题,就把跟程序生成的参数对应作为测试数据,对存储过程进行测试,如下:

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

很显然 没有问题 ,正确的啊!

之前 我还怀疑是不是 时间格式问题 ,  我就再次设置本地时间格式:

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

还有一个小细节 大家有木有注意到:

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

我怕这个获取的时间 在 oracle 里面 行不通 就强制在程序里面给他订了一个死的时间

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

这样 我想 就不会出错了!

然后  就再次把程序跑了一边,o(︶︿︶)o 唉  结果如上 还是报这个错误!

没办法 然后就翻来覆去的 盯得代码看 一行一行的过 存储过程 也是一遍一遍的测试 真的没什么问题啊!

最后 就尝试尝试创建一个临时表,执行下程序 ,看程序有木有进存储过程

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

看到这里 我的天 咋会这样?(相信大家有的人已经明白咋回事了!)

我传的参数明明是名字对应名字,怎么会这样!!!

这是存储过程参数顺序:

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

这是程序传入参数顺序:

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

明白了么 !大家?