想当初我在做一个ASP.NET网站的时候,用的是Oracle数据库更新数据。表里面的字段有int类型的,string类型的,还有date类型的,在和asp.NET前台控件绑定更新的时候总是出现问题,我当时上网查了好多东西,总是看的模棱两可,毕竟也是头一次接触操作Oracle。我把我最初写的更新贴出来(现在这个问题已经解决了),你们看看:

更新语句如下:
sql = string.Format("update xxt_registration r set r.name='{0}',r.ip='{1}',r.port='{2}',r.time='{3}',r.location='{4}',r.installtime='{5}',r.type=(select d.id from xxt_devicetype d where d.name='{6}') where r.id='{7}'",

this.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类型的。

你传递一个字符格式的内容进去以后,数据库不知道如何格式化这个字符信息为日期。

下面是一个网友提供的,错误重现的例子与解决的办法。在这里非常感谢他的热心帮助(链接地址是http://zhidao.baidu.com/question/551220541?quesup2&oldq=1)

SQL> create table test_time( time   date );
表已创建。
SQL> insert into test_time values('2013-05-17 16:55');
insert into test_time values('2013-05-17 16:55')*
ERROR 位于第 1 行:
ORA-01861: 文字与格式字符串不匹配
SQL> insert into test_time values('2013-05-17 16:55:30');
insert into test_time values('2013-05-17 16:55:30')*
ERROR 位于第 1 行:
ORA-01861: 文字与格式字符串不匹配
SQL> insert into test_time values(  TO_DATE('2013-05-17 16:55:30', 'YYYY-MM-DD HH24:MI:SS') );
已创建 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 = string.Format("update xxt_registration r set r.name='{0}',r.ip='{1}',r.port='{2}',r.location='{3}',r.installtime=to_date('{4}','yyyy-mm-dd'),r.type=(select d.id from xxt_devicetype d where d.name='{5}') where r.id={6}",this.txtname.Text.Trim(), this.txtip.Text.Trim(), this.txtport.Text.Trim(), this.txtlocation.Text.Trim(), this.Calendarinstalltime.SelectedDate.ToString("yyyy-MM-dd"), this.DropDownList_tname.Text.Trim(), this.txtid.Text.Trim());

最后,如果您还需要Oracle中TO_DATE格式的其它解答,下面的链接地址有详细的解说,相信一定能帮助您的。

http://www.cnblogs.com/ajian/archive/2009/03/25/1421063.html

转载于:https://www.cnblogs.com/litao4047/archive/2013/06/08/3127237.html

一个关于Oracle更新语句引发的时间字段类型的问题相关推荐

  1. mysql——时间字段类型与C#中datetime

    一.引言 做项目的时候开始纠结于用2013-01-01 12-12-12存储还是用 2013-01-01存储,这个设计到的问题是mysql中时间字段的选择问题:date.time或者datetime: ...

  2. oracle 更新语句不生效,Oracle存储过程执行update语句不报错不生效问题

    转载链接:http://lin49940.iteye.com/blog/466626 今天一个同事写oracle 的存储过程遇到了一个问题, 他在里面update 操作不能完成更新的操作, 但是又不会 ...

  3. oracle向前推一个小时,oracle SQL里常用的时间函数,经典推荐

    oracle SQL里常用的时间函数,经典推荐 (2009-03-11 23:16:54) 标签: 杂谈 常用日期型函数 1.Sysdate 当前日期和时间 SQL> Select sysdat ...

  4. Oracle更新语句

    我的Oracle数据库学习笔记 Day 5 更新语句 文章目录 我的Oracle数据库学习笔记 修改语句 1.修改所有男同学的年龄+1 2.修改年龄在20-30之间的男同学的年龄-1 3.修改地址为空 ...

  5. laravel中的ORM模型修改created_at,updated_at,deleted_at三个时间字段类型

    laravel框架中的ORM模型极大的简化了数据库操作,同时也提高了数据操作安全性. 在laravel框架ORM模型中默认会有三个时间字段,created_at,updated_at,deleted_ ...

  6. Oracle 表已经有数据 修改字段类型,把varchar2类型变成date类型

    Oracle修改字段类型,把varchar2类型变成date类型 表已经有数据 原来表是这样的 create table export ( name varchar2(10), datetimes v ...

  7. Access sql语句创建表及字段类型

    创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NUL ...

  8. 由一个进度条更新所引发的思考

    事情的起因 事情是这样子的,我前阵子在Github上开源了一个Android全量版本更新的框架XUpdate, 受到了大家一致的好评. 但是随着使用者基数的不断增大,中间也暴露了很多问题,其中问的最多 ...

  9. oracle更新语句很慢,高手们,我update一条语句怎么很慢了?

    我执行语句,和执行计划,高手们帮帮忙 update xx_jb_ymd_01 s set s.SFZHM='232321198712120812',s.zzje=750,s.yhkhm='63009 ...

最新文章

  1. 计算机专业知识考试 一,计算机专业知识试题(事业单位计算机专业知识考试试卷)(1)...
  2. win10 安装tensorflow
  3. CTFshow php特性 web110
  4. 将传统 WPF 程序迁移到 DotNetCore 3.0
  5. Python中使用psutil查看内存占用的情况(内存)
  6. java resultset查询_java – 什么是“查询返回多个ResultSet”的解决方案
  7. python从语音生成MFCC特征
  8. SAP操作手册之 IDOC基础篇
  9. 基于RK3399Pro的BH1750驱动开发
  10. Kylo 0.8.3 安装
  11. 如何在swap中获取交易对的价格
  12. 【蓝桥杯集训100题】scratch辨别质数合数 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第15题
  13. 使用Perfmon和PAL工具查看Server性能--PerfMon入门指南
  14. swoole.so: undefined symbol: _zval_ptr_dtor
  15. Axure如何填充背景图
  16. 蓝牙热敏打印开发(佳博打印机)
  17. centos6.9 yum安装中出现Loading mirror speeds from cached hostfile No package......
  18. c语言 PTA2020总决赛 L1-4 调和平均
  19. 【PaperReading】Prevalence and patterns of higher-order drug interactions in Escherichia coli
  20. 21日跟师兄谈话总结

热门文章

  1. 简明python教程购买-自学Python买什么书?
  2. python编程基础语法-Python编程基础语法快速入门
  3. python线上培训多少钱-Python人工智能在线培训班学费多少钱?
  4. python的用途实例-python中类方法,实例方法,静态方法的作用和区别
  5. python读文件代码-Python遍历文件夹和读写文件的实现代码
  6. python百度百科怎么读-python英文怎么读
  7. python菜鸟编程-Python3 函数
  8. 为什么python画不了图-python-为什么pygame不画一个圆?
  9. 初学者学python好还是c-入门是不是应该选择C而不是直接学Python?
  10. python学习手册翻译很差吗-为什么要翻译?值得坚持下去么?