0

我有一个简单的 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: 日期格式图片在转换整个输入字符串之前结束

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

4

2 回答 2

2

使用语句时,您应该始终定义列名。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'))
于 2013-11-19T17:30:16.610 回答
0

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

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

再次感谢。

最良好的祝愿

凯泽·贾拉勒

于 2013-11-20T13:51:35.473 回答