asp.net操纵Oracle存储过程
在bloginfo数据库中,利用用户名 system 密码 scy251147 选择超级管理员登陆 创建如下存储过程:

2 create or replace procedure sys.InsertInfo
3 (
4 TitleParams in nvarchar2,
5 ContentParams in nvarchar2,
6 Obj_Params out integer
7 )
8
9 is
10 begin
11 insert into testtable(ID,title,content)
12 values(seq_testtable_ids.nextval,TitleParams,ContentParams)
13
14 return ID into Obj_Params;
15
16 return;
17 exception
18 when no_data_found
19 then
20 null;
21 when others
22 then
23 raise;
24 end InsertInfo;
25
26

然后就是asp.net端的操作代码:

2 {
3 conn.Open();
4 OracleCommand oracmd = new OracleCommand();
5 oracmd.Connection = conn;
6 DbParameter[] paras=new OracleParameter[3];
7
8
9 paras[0] = new OracleParameter("TitleParams", OracleType.NVarChar,500);
10 paras[0].Value = "你好啊,哈哈哈哈哈";
11 paras[0].Direction = ParameterDirection.Input;
12
13 paras[1] = new OracleParameter("ContentParams", OracleType.NVarChar,500);
14 paras[1].Value = "我今天很高兴,真的,希望大家都要高兴啊,哈哈哈哈";
15 paras[1].Direction = ParameterDirection.Input;
16
17 paras[2] = new OracleParameter("Obj_Params",OracleType.Int32);
18 paras[2].Direction = ParameterDirection.Output;
19
20
21
22 oracmd.Parameters.Add(paras[0]);
23 oracmd.Parameters.Add(paras[1]);
24 oracmd.Parameters.Add(paras[2]);
25
26 oracmd.CommandText = "sys.INSERTINFO";
27
28 oracmd.CommandType = CommandType.StoredProcedure;
29
30
31 oracmd.ExecuteNonQuery();
32 int i = Convert.ToInt32(paras[2].Value);
33 Response.Write(i.ToString());
34 }
35

从这里,我们看上去是一点问题都没有的,然后直接运行。
结果,一直提示“必须说明标识符“InsertInfo””(注意:我当时的语句是:oracmd.CommandText = "INSERTINFO";)
然后一直没找到结果,也没有发现程序中的错误,于是便想到了可能是授权的问题。
于是我退出超级管理员,然后利用用户名system 密码scy251147 选择Normal用户进行登陆,结果在利用
select * from testtable的时候,发现果真找不到这个表了,于是便利用select * from sys.testtable发现竟然显示
除了结果,于是便在语句前面加个sys.,一切正常了,返回了正确的数值。
猜想:可能是程序连接的时候,自动利用普通用户的权限进行登陆,而我的表是在超级管理员里面建立的,所以会看不到
只要在前面加上用户名称,就可以了,比如sys.testtabel。呵呵·~~~
小东西,看来里面的麻烦还不少。
asp.net操纵Oracle存储过程的更多相关文章
- asp.net调用oracle存储过程
oracle内的存储过程是通过游标返回结果集的 DataTable dt = new DataTable(); OracleParameter[] paras = ]; paras[] = new O ...
- asp.net oracle 存储过程
ORACLE代码 CREATE OR REPLACE PROCEDURE gd_CURSOR(MYCS1 OUT SYS_REFCURSOR,MYCS2 OUT SYS_REFCURSOR,a out ...
- oracle存储过程实例
oracle存储过程实例 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的P ...
- oracle存储过程的例子
oracle存储过程的例子 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的 ...
- [oracle] Oracle存储过程里操作BLOB的字节数据的办法,例如写入32位整数
作者: zyl910 一.缘由 BLOB是指二进制大对象,也就是英文Binary Large Object的缩写. 在很多时候,我们是通过其他编程语言(如Java)访问BLOB的字节数据,进行字节级的 ...
- .NET Core中使用Dapper操作Oracle存储过程最佳实践
为什么说是最佳实践呢?因为在实际开发中踩坑了,而且发现网上大多数文章给出的解决方法都不能很好地解决问题.尤其是在获取类型为OracleDbType.RefCursor,输出为:ParameterDir ...
- ASP.NET操作Oracle知识记录(采用ODP.NET)
最近因为要把以前做的一个项目数据库从MSSQL2005转移到Oracle上,所以开始接触Oracle,通过本篇随笔简单记录一些ASP.NET结合Oralce的操作: 因为微软未来不再支持 System ...
- NET Core中使用Dapper操作Oracle存储过程
.NET Core中使用Dapper操作Oracle存储过程最佳实践 为什么说是最佳实践呢?因为在实际开发中踩坑了,而且发现网上大多数文章给出的解决方法都不能很好地解决问题.尤其是在获取类型为Or ...
- oracle 存储过程
来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...
随机推荐
- python3.6下pycharm连接mysql
由于python3.x里面没有了MysqlDB,所以使用python3.6+django连接不上mysql,会报错 no modul "MysqlDB".于是就有了一个替代品,叫p ...
- Vue--理解非prop特性
所谓非 prop 特性,就是指它可以直接传入组件,而不需要定义相应的 prop. 尽管为组件定义明确的 prop 是推荐的传参方式,组件的作者却并不总能预见到组件被使用的场景.所以,组件可以接收任意传 ...
- Open-falcon监控
https://book.open-falcon.org/zh_0_2/ 本文档记录了CentOS7.4下open-falcon-v2监控系统的部署流程,以及一些需要注意的地方. 环境准备 安装Red ...
- java的Thread Dump诊断工具
1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工具.每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Jav ...
- imx8移植opencv(3.0以上版本)笔记
基本步骤参考我同事的博客:https://blog.csdn.net/hunzhangzui9837/article/details/89846928 以下是在移植到imx8平台时的笔记和遇到的问题及 ...
- 【原创】大叔案例分享(5)id打通
经常有一些需要做id打通的场景,比如用户id打通等, 问题抽象是每条数据都可以解析出一个或多个kv pair:(id_type,id),然后需要将某一个kv pair匹配的多条数据进行merge: 比 ...
- loj 3014「JOI 2019 Final」独特的城市
loj 我本来是直接口胡了一个意思一样的做法的,但是因为觉得有点假+实现要用并查集(?)就卡了好一会儿... 对于一个点\(x\)来说,独特的点一定在它的最长链上,如果有独特的点不在最长链上,那么最长 ...
- jvm自带的监控机制
Jdk为我们提供了查看java服务运行时的监控情况 1.如下图所示,打开指定目录下的jconsole.exe应用程序文件. 2.双击后跳出如下界面,可以看到,我们可以监视本地的,也可以监视远程服务.本 ...
- redis集群+JedisCluster+lua脚本实现分布式锁(转)
https://blog.csdn.net/qq_20597727/article/details/85235602 在这片文章中,使用Jedis clien进行lua脚本的相关操作,同时也使用一部分 ...
- 函数缓存 (Function caching)
函数返回值缓存是优化一个函数的常用手段.我们可以将函数.输入参数.返回值全部保存起来,当下次以同样的参数调用这个函数时,直接使用存储的结果作为返回(不需要重新计算). 函数缓存允许我们将一个函数对于给 ...