【问题标题】:Oracle Query Works on my local pc but give exception of ORA: 01830 on other machineOracle Query 在我的本地电脑上工作,但在其他机器上出现 ORA: 01830 异常
【发布时间】:2013-12-03 09:07:42
【问题描述】:

我有一个简单的 sql insert 语句,它是我的本地计算机上运行良好的 asp.net Web 应用程序的一部分,但是在我将功能部署到舞台环境后,SQL 查询出现问题。正在使用的数据库是 Oracle。

将 dateType 格式的条目保存到表中时会出现问题。以下是查询:

"insert into cpm2cpm_project_control values ('Test', 'test', 'test', 'test', 'STAGE', 'test123', 'test123', to_date('2013-11-19','yyyy-mm-dd'))"

现在这个查询在我的本地电脑上运行良好,它指向与舞台环境相同的数据库,但它没有在舞台环境中执行。我上台的例外情况如下:

ORA-01830: ORA-01830: 日期格式图片在转换整个输入字符串之前结束

因此,当同一个查询在一个环境中运行而不在另一个环境中运行时,很难找到实际问题。有人可以帮忙吗?

【问题讨论】:

    标签: asp.net oracle ora-01830


    【解决方案1】:

    您应该始终在使用INSERT INTO 语句时定义列名。

    这是因为如果列未完全对齐(即暂存的表与您的本地表有所不同),您将面临在列中插入无效值的风险...

    将您的查询更改为这样的内容(为更好的可视化而编辑):

    INSERT INTO cpm2cpm_project_control (column1,column2,column3,...)
    VALUES ('Test', 'test', 'test', 'test', 'STAGE', 
            'test123', 'test123', to_date('2013-11-19','yyyy-mm-dd'))
    

    【讨论】:

    • 嗨。感谢您及时的回复。我尝试添加列名,但问题仍然存在。还有什么建议吗? Khizer J
    【解决方案2】:

    感谢您的建议。我已经对问题进行了排序。它是 Oracle 客户端的一种奇怪行为。 Oracle 客户端在 x86 位机器和 x64 机器上的行为不同。此外,我认为 Oracle 客户端提供程序的版本也会改变查询编译的行为。

    设置相同的提供者解决了这个问题。

    再次感谢。

    最好的祝福

    凯泽·贾拉勒

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-02
      • 2011-01-19
      • 2013-09-29
      • 2018-06-06
      • 2015-12-27
      • 2013-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多