初折腾Oracle问题小记二

    xiaoxiao2022-07-09  214

    说明:

    为了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  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 ...’即可。

     

     版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

    http://www.cnblogs.com/cyq1162/archive/2010/09/28/1837212.html

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)