一个关于Oracle更新语句引发的时间字段类型的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了一个关于Oracle更新语句引发的时间字段类型的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2037字,纯文字阅读大概需要3分钟。
内容图文
想当初我在做一个ASP.NET网站的时候,用的是Oracle数据库更新数据。表里面的字段有int类型的,string类型的,还有date类型的,在
想当初我在做一个ASP.NET网站的时候,用的是Oracle数据库更新数据。表里面的字段有int类型的,string类型的,还有date类型的,在和asp.NET前台控件绑定更新的时候总是出现问题,我当时上网查了好多东西,总是看的模棱两可,,毕竟也是头一次接触操作Oracle。我把我最初写的更新贴出来(现在这个问题已经解决了),你们看看:
更新语句如下: sql = .txtname.Text.Trim(), this.txtip.Text.Trim(), this.txtport.Text.Trim(), this.txttime.Text.Trim(), this.txtlocation.Text.Trim(), this.txtinstalltime.Text.Trim(), this.DropDownList_tname.Text.Trim(), this.txtid.Text.Trim());
首先,出现的问题就是“类型”与“单引号”的问题,报的错误是,如下图:
这个错误是,ORA-01861: 文字与格式字符串不匹配。
可能是因为你那个表里面的time这一列,数据类型是date类型的。
你传递一个字符格式的内容进去以后,数据库不知道如何格式化这个字符信息为日期。
下面是一个网友提供的,错误重现的例子与解决的办法。在这里非常感谢他的热心帮助
SQL> create table test_time( time date ); 表已创建。 SQL> insert into test_time values(); insert into test_time values() * ERROR 位于第 1 行: ORA-01861: 文字与格式字符串不匹配 SQL> insert into test_time values(); insert into test_time values() * ERROR 位于第 1 行: ORA-01861: 文字与格式字符串不匹配 SQL> insert into test_time values( TO_DATE(, ) ); 已创建 1 行。
对于上面的更新语句,我总结如下:
string类型的可以加单引号,像r.name='{0}',r.ip='{1}',r.port='{2}'等等都是可以的;
int类型的在Oracle数据库更新语句中是不能加单引号的,像id='{7}'是不行的,应该去掉单引号改为id={7};
date类型可以加单引号,但不是像r.time='{3}'这样的,应该应用TO_DATE()来转换格式,如:r.time=to_date('{3}','yyyy-mm-dd')。asp.net前台控件中输入的是字符串类型的数据,更新的时候当然要转换成时间类型格式的,修改后的更新语句如下:
sql = , ), this.DropDownList_tname.Text.Trim(), this.txtid.Text.Trim());
最后,如果您还需要Oracle中TO_DATE格式的其它解答,下面的链接地址有详细的解说,相信一定能帮助您的。
内容总结
以上是互联网集市为您收集整理的一个关于Oracle更新语句引发的时间字段类型的问题全部内容,希望文章能够帮你解决一个关于Oracle更新语句引发的时间字段类型的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。