今天在修改缺陷时遇到一个问题,更新数据库字段时一直报错:ORA-00911。sql脚本如下:

UPDATE MBP_DOC SET CSTATE='' WHERE CID='';
UPDATE MBP_DOC SET CSTATE='' WHERE CID='';
UPDATE MBP_DOC SET CSTATE='' WHERE CID='';

该脚本在数据库中可以执行,但是从程序中去访问数据库修改值时就会报错。

报错的原因在于,更新oracle数据库中的字段时,如果一次执行多条语句,就要将这些语句用 BEGIN END;包起来。如上的脚本应改写为:

BEGIN
UPDATE MBP_DOC SET CSTATE='' WHERE CID='';
UPDATE MBP_DOC SET CSTATE='' WHERE CID='';
UPDATE MBP_DOC SET CSTATE='' WHERE CID='';
END;

如果只执行一条update语句

UPDATE MBP_DOC SET CSTATE='' WHERE CID='';

这样也是会报ORA-00911错.此时,就应该去掉末尾的分号;

在程序中,操作的最后一句应该是不加分号的。加了反而会报错。只有一条语句时应该去掉分号,如下:

UPDATE MBP_DOC SET CSTATE='' WHERE CID=''

总结:1 程序中访问oracle数据库的时候,有以下几种情况,都是正确的:

//1 执行一条语句,不加分号
UPDATE MBP_DOC SET CSTATE='' WHERE CID=''
//2 执行一条语句,加分号,加BEGIN  END;
BEGIN
UPDATE MBP_DOC SET CSTATE='' WHERE CID='';
END;
//3 执行多条语句,每句末尾加分号,加BEGIN END
BEGIN
UPDATE MBP_DOC SET CSTATE='' WHERE CID='';
UPDATE MBP_DOC SET CSTATE='' WHERE CID='';
END;

也就是,任何情况下,每一句后面加上分号,然后整个操作用BEGIN END;包起来,都是不会出错的。

ORA-00911无效字符报错的更多相关文章

  1. 关于“ORA-01747: user.table.column, table.column 或列说明无效”的报错。

    今天在工程中遇到“ORA-01747: user.table.column, table.column 或列说明无效”的报错情况,查了一下是由于数据库列名起的不好引起的,名字用到了数据库的关键字.

  2. MySql 插入10位以上长度的字符报错or截断

    当a字段为int类型时: 如果用MyBatis向MySql插入10个字符以上长度的字符串,则会报错. 如果直接在MySql中用sql语句插入10个字符以上长度的字符串,则会变成最大的int类型数值:2 ...

  3. webstorm中sass编译时目录或内容包含中文字符报错

    ruby版本:ruby 2.3.1p112 (2016-04-26 revision 54768) [x64-mingw32] sass版本:Sass 3.4.22 (Selective Steve) ...

  4. phpstorm中sass编译时目录或内容包含中文字符报错

    ruby版本:ruby 2.4.1p111 (2017-03-22 revision 58053) [x64-mingw32] sass版本:Sass 3.4.24 (Selective Steve) ...

  5. java报错java/lang/NoClassDefFoundError: java/lang/Object

    安装完java出错 javac和java -version 都无效,报错如上 解决方法,更改文件中的两个文件(前提是你的 vim  /etc/profile  文件路径写的正确) /usr/java/ ...

  6. Mysql报错......\xE6\x80\xBB\xE7\x9B\x91' for column...

    Mysql添加表中字符报错:Incorrect string value: '\xE6\x80\xBB\xE7\x9B\x91' for column 'postName' at row 1 原因:字 ...

  7. Base64 报错 的解决办法 (Base-64 字符数组或字符串的长度无效。, 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。)

    Base64 报错 的解决办法, 报错如下:1. FormatException: The input is not a valid Base-64 string as it contains a n ...

  8. mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法

    如果你用java写程序访问数据库,出现这个问题:java.sql.SQLException: ORA-00911: 无效字符 at oracle.jdbc.driver.DatabaseError.t ...

  9. SQL报错:ORA-00911:无效的字符错误

    转载自:https://blog.csdn.net/huangyanlong/article/details/38096469 *)ORA-00911:无效的字符错误——由编译环境下一个小错误引起.S ...

随机推荐

  1. 校园导游之NABC个人分析

    校园导游之NABC个人分析 Need: 为不熟悉校园环境的人们(如新生,来咱们学校参观滴)提供便利. Approach: 了解Andriod应用开发:导航功能之外还可以对学校进行宣传,比如拍一些学校的 ...

  2. 结对开发:7-magic用户调研报告

    用户调研报告 班级   信1201-2班  学号   20122929     姓名  崔乐乐 项目名称:7-magic 调研时间: 2015/4/14 调研主题:7-magic游戏的用户需求度调研 ...

  3. PHP中如何连接数据库基本语句

    只是后端修改页面,不需要在前端显示的可以删除原有代码只输入<?php 开始编写语言即可,后面的?>也可以省略 //造一个连接$connect = @mysql_connect(" ...

  4. C#格式化JSON字符串

    很多时候我们需要将json字符串以 {     "status": 1,     "sum": 9 }这种方式显示,而从服务端取回来的时候往往是这样 {&quo ...

  5. git学习——<一>git安装

    一.windows.linux平台安装 windows平台安装简单方便,到git官网上下载exe安装包即可,会把git bash shell给你安装好,你到命令窗口便可直接使用. linux平台安装, ...

  6. smaa github iryoku

    dx10 demo 这东西我没法跑nsight ...这就坑大了 里面有个 RenderTargetCollection这个东西里面有很多 rendertargets 最让我苦恼的就是 sceneRT ...

  7. phonegap上传以及下载图片

    在phonegap中,有时我们需要从服务器下载图片以及上传图片,这个时候可以用到官方提供的一个插件:FileTransfer 首先通过命令添加插件: cordova plugin add org.ap ...

  8. VSS

    A deleted file of the same name already exists in this VSS project. Do you want to recover the delet ...

  9. ASP.NET登录控件延伸(个性化)

    既然由登录控件涉及到了Membership,那么就不得不提到用户个性化Profile对象.个性化允许为用户保存特定的个性化信息到数据库中,因此它不同于ASP.NET状态管理之处在于可以永久性保存这些信 ...

  10. mybatis处理查询map列表属性为null的问题,而导致查询map无该key对象

    1.常规处理方法(数据库以mysql为例) IFNULL(m.last_use_time,) ) ) as last_lat if判断是否为null,设置一个默认值. 2.前台jsp页面处理,判断是否 ...