微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

初折腾Oracle问题小记二

说明:
为了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;

示例:

begin

Insert Users(id,username,url) values ( 1 , ' 路过秋天 ','http://cyq1162.cnblogs.com' );

update ......;

end ;

说明:

只能批量执行insert/update/delete/select..into等不返回结果的语句。

继续补充

6:写了一个测试的存储过程如下:

create or replace packageMyPackage as
typecursorResult
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"haserrors
ORA
- 06508 :PL / sql:Could not findprogramunitbeingcalled
ORA
- 06512 :atline 1

问题已解决

这种错误都是语法错误,把上面的MysqL = ' select... ' 改成MysqL: = select ...’即可。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐