初折騰Oracle問題小記二

來源:互聯網
上載者:User

說明:

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

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.