为了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 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;
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
ORA - 06508 :PL / sql:could not findprogramunitbeingcalled
ORA - 06512 :atline 1
问题已解决:
原文链接:https://www.f2er.com/oracle/211659.html