初折腾Oracle问题小记二
发布时间:2020-12-12 15:41:24 所属栏目:百科 来源:网络整理
导读:说明: 为了CYQ.Data框架CYQ.Data 轻量数据层之路 框架开源系列 索引引入支持Oralce,继续努力着。 今天花了半天,总算完成了添加/更新/删除操作。 继续记录今天折腾Oralce遇到的问题: 1:参数化传参,默认加了个返回值ReturnValue参数,引发异常--参数个数
说明:
为了CYQ.Data框架CYQ.Data 轻量数据层之路 框架开源系列 索引引入支持Oralce,继续努力着。 今天花了半天,总算完成了添加/更新/删除操作。 继续记录今天折腾Oralce遇到的问题: 1:参数化传参,默认加了个返回值ReturnValue参数,引发异常--参数个数配对问题。
2:参数的数据类型设置大小设置不能为-1,不然会引发值太大,无法绑定的引异常--参数大小需要指定。
3:参数化语句如:Insert Users(ID,UserName) values(AutoID.nextval,:UserName)--参数用":"
4:参数添加可以加前缀或不加前缀如: com.Parameters.Add(":UserName",objValue) 或 com.Parameters.Add("UserName",objValue);
5:多语句执行,语法如下:begin 语句1;语句2;end; 示例: beginInsert Users(id,username,url) values ( 1 , ' 路过秋天 ','http://cyq1162.cnblogs.com' ); update ......; end ; 说明: 只能批量执行insert/update/delete/select..into等不返回结果的语句。继续补充 6:写了一个测试的存储过程如下: create or replace packageMyPackage astypecursorResult is ref cursor ; procedure SelectBase(pageIndex int ,pageSize int ,tableName varchar2 ,whereStr varchar2 ,myResultoutcursorResult); end MyPackage; procedure SelectBase(pageIndex int ,myResultoutcursorResult) is mySql varchar2 ( 2000 ); begin mySql = ' select*from ' || tableName; open myResult for mySql; end SelectBase; end MyPackage; 在PL/SQL下Test执行,发现int都显示成Float型了。 直接界面调用报以下错误: ORA - 04063 :packagebody"SA.MYPACKAGE"haserrorsORA - 06508 :PL / SQL:could not findprogramunitbeingcalled ORA - 06512 :atline 1 问题已解决: 这种错误都是语法错误,把上面的mySql = ' select... ' 改成mySql: = ‘ select ...’即可。(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |