最近两天使用的oracle数据库开发项目时遇到了2个异常,第一个是执行sql语句时报异常:“ORA-00911: 无效字符”,如下图:

sql语句如下:

断点调试,把sql语句拷贝到pl/sql里执行,sql语句执行正常。反复测试几次后,去掉了sql语句结尾的分号,程序执行正常。

总结到:pl/sql里执行的sql语句可以加分号,但是程序里执行的sql语句字符串结尾不要加分号。

第二个异常是:

ORA-06550: 第 1 行, 第 7 列:
PLS-00306: wrong number or types of arguments in call to 'ADDOPERATIONINFO'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored

异常截图如下:

调用的存储过程如下:

根据异常提示,应该是说存储过程的参数个数不对或者是存储过程参数类型不对。

反复对比程序传入的参数个数和类型,与oracle里存储过程的参数个数和类型,是完全一模一样的。困惑了很久后,测试发现,是由于C#程序传入的字符串类型参数entityId是null,存储过程第313行判断p_EntityId is not null 时,插入到ENTITYANDOPERATION表。

即:程序里传入的是null,但是到数据库里用is not null判断的的结果是true。

于是我在程序里对entityid进行了判断,当entityid为null时,p_EntityId传入的值为System.DBNull.Value,如下图:

这样的话,实现了我想要的效果,而不报错:

当entityid不为null时,存储过程第313行if语句返回true,执行存储过程的第314行插入语句;

当entityid为null值时,传入的是System.DBNull.Value,存储过程第313行if语句返回false,不执行第314行插入语句。

使用oracle数据库开发,异常总结的更多相关文章

  1. 用 Docker 搭建 ORACLE 数据库开发环境

    用 Docker 搭建 ORACLE 数据库开发环境 需要安装 ORACLE 数据库做开发,直接安装的话因为各类平台的限制,非常复杂,会遇到很多问题. 还好,现在有 Docker 化的部署方式,省去很 ...

  2. Oracle数据库开发

    Oracle数据库开发之PL/SQL基础实战视频课程 1 PL/SQL 简介 2 入门实例(一) 3 入门实例(二) 4 PL/SQL 变量和常量 5 PL/SQL数据类型(一) 6 PL/SQL数据 ...

  3. 【转】oracle数据库开发的一些经验积累

    1.不安装Oracle客户连接Oracle 8的方法  请将以下文件拷贝到运行文件所在目录 一.ODBC动态库 : ctl3d32.dll msvcrt40.dll odbc16gt.dll odbc ...

  4. VS2017离线安装与Oracle数据库开发环境搭建

    记得之前使用VS2015打开老的MVC4项目,不能右键创建控制器和添加视图,让我非常不习惯!找遍了网络无果,最后只能回到VS2013,但我就是不喜欢用旧的VS,这是不是病... 1.将VS2017离线 ...

  5. oracle 数据库io 异常,错误代码17002 解决办法

    数据库使用一个月了,突然挂掉:错误代码17002 io异常:read timeout 解决: 1.登陆sql命令窗口 [oracle@hostname ~]$ sqlplus /nolog SQL*P ...

  6. Visual Studio 2017使用ODT 连接Oracle 数据库出现异常

    2019.5.23 更新 突然发现原来是是sqlnet.ora在搞鬼,只要将SQLNET.AUTHENTICATION_SERVICES=(nts)  改为 SQLNET.AUTHENTICATION ...

  7. Oracle 数据库应用开发 30 忌

    原创 LaoYuanPython CSDN 今天 作者 | LaoYuanPython       责编 | 欧阳姝黎出品 | CSDN原力计划 引言 笔者及所在团队从 2000 年开始的 CRM 等 ...

  8. .Net 中读写Oracle数据库常用两种方式

    .net中连接Oracle 的两种方式:OracleClient,OleDb转载 2015年04月24日 00:00:24 10820.Net 中读写Oracle数据库常用两种方式:OracleCli ...

  9. 教你如何阅读Oracle数据库官方文档

    < Ask Oracle官方原创 > Oracle 官方文档 数量庞大,而且往往没有侧重点,让oracle新手看起来很费力.但是,仍有很多Oracle使用者认为任何oracle学习资料都比 ...

随机推荐

  1. Html网页的代码

    Html网页的代码 很全哦 1)贴图:<img src="图片地址"> 2)加入连接:<a href="所要连接的相关地址">写上你想写 ...

  2. 设计模式 单例模式(Singleton) [ 转载2 ]

    设计模式 单例模式(Singleton) [ 转载2 ] @author java_my_life 单例模式的结构 单例模式的特点: 单例类只能有一个实例. 单例类必须自己创建自己的唯一实例. 单例类 ...

  3. 4、Hibenrate中HQL的10中查询方式

    二.具体事例如下: 2.0 编写如下sql语句 )); create sequence seq_teacher; insert into teacher values(seq_teacher.next ...

  4. webapi中常用attribute标签

    HTTP Methods Instead of using the naming convention for HTTP methods, you can explicitly specify the ...

  5. Visual Studio 2010 安装帮助文档问题

    今天重装系统,装完VS2010后,如往常一样安装文档,却弹出如下错误"Could not create the local store in the specified folder.... ...

  6. Chapter 16_3 多重继承

    在Lua中进行面向对象编程时有几种方法,上一小结介绍了一种使用__index元方法的做法. 下面要介绍另一种方法,可以在Lua中实现多继承. 关键一点,在于用函数作为__index元字段. 多重继承意 ...

  7. C#代码实现把网页文件保存为mht文件

    MHT叫“web单一文件”.顾名思义,就是把网页中包含得图片,CSS文件以及HTML文件全部放到一个MHT文件里面.而且浏览器可以直接读取得. 由于项目需要,需实现把指定的网页文件保存为mht文件.于 ...

  8. linux下ClamAV使用

    第一步:Clamav下载http://www.clamav.net/downloads#yuminstall wget –y第二步:创建clamav用户和组groupaddclamav   (创建cl ...

  9. Find and run the whalesay image

    Find and run the whalesay image People all over the world create Docker images. You can find these i ...

  10. android配置文件详解

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...