初折腾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:写了一个测试的存储过程如下:

05233608_DoGY.gif
create   or   replace  package MyPackage  as  
type cursorResult 
is  ref  cursor ;
procedure  SelectBase(pageIndex  int ,pageSize  int ,tableName  varchar2 ,whereStr  varchar2 ,myResult out cursorResult);
end  MyPackage;


procedure  SelectBase(pageIndex  int ,pageSize  int ,tableName  varchar2 ,whereStr  varchar2 ,myResult out cursorResult)
  
is
  mySql 
varchar2 ( 2000 );
  
begin
    mySql
= ' select * from  ' || tableName;
    
open  myResult  for  mySql;
    
end  SelectBase;
  
  
  
end  MyPackage;

在PL/SQL下Test执行,发现int都显示成Float型了。

直接界面调用报以下错误:

ORA - 04063 : package body "SA.MYPACKAGE" has errors
ORA
- 06508 : PL / SQL: could  not  find program unit being called
ORA
- 06512 : at line  1

问题已解决:

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

转载于:https://my.oschina.net/secyaher/blog/274256

猜你喜欢

转载自blog.csdn.net/weixin_34414196/article/details/91966885
今日推荐