Oracle儲存過程筆記

2021-09-30 06:59:04 字數 1862 閱讀 9578

在oracle中,資料表別名不能加as,也許是怕和oracle中儲存過程的關鍵字as衝突的問題吧。

1.在oracle中,資料表別名不能加as。

如:

也許,是怕和oracle中儲存過程的關鍵字as衝突的問題吧

2.在儲存過程中,select某一字段時,後面必須緊跟into,如果select整個記錄,利用游標的話就另當別論了。

3.在利用select...into...語法時,必須先確保資料庫中有該條記錄,否則會報出"nodatafound"異常。

可以在該語法之前,先利用select count(*) from 檢視資料庫中是否存在該記錄,如果存在,再利用select...into...

4.在儲存過程中,別名不能和欄位名稱相同,否則雖然編譯可以通過,但在執行階段會報錯。

fetch

returns more than requested number of rows

5.在儲存過程中,關於出現null的問題。

假設有乙個表a,定義如下:

create

table

a(

id varchar2(50) primary

key

not null,

vcount number(8) not null,

bid varchar2(50) not null -- 外來鍵

);

如果在儲存過程中,使用如下語句:

select

sum

(vcount) into fcount from a where bid='******';

如果a表中不存在bid="******"的記錄,則fcount=null(即使fcount定義時設定了預設值,如:fcount number(8):=0依然無效,fcount還是會變成null),這樣以後使用fcount時就可能有問題,所以在這裡最好先判斷一下:

if fcount is null then

fcount:=0;

end if;這樣就一切ok了。

6.hibernate呼叫oracle儲存過程

this.pnumbermanager.gethibernatetemplate().execute(

new hibernatecallback() ...{

public object doinhibernate(session

session

)

throws hibernateexception, sqlexception ...{

callablestatement cs = session

.

connection

oracle儲存過程筆記

儲存過程是oracle資料庫中的過程化程式語言 progress language 可以用來編寫包含sql語句的程式。塊結構 過程化語句可劃分為稱為塊的結構,一般包含如下結構 declare 申明語句 declaration statements begin 執行開始 executable stat...

oracle學習筆記 儲存過程

一 概述 oracle儲存過程開發的要點是 使用notepad文字編輯器,用oraclepl sql程式語言寫乙個儲存過程 在oracle資料庫中建立乙個儲存過程 在oracle資料庫中使用sql plus工具執行儲存過程 在oracle資料庫中修改儲存過程 通過編譯錯誤除錯儲存過程 刪除儲存過程 ...

oracle儲存過程學習筆記

建乙個不帶任何引數儲存過程 輸出系統日期 create or replace procedure output date is begin dbms output.put line sysdate end output date 執行這個儲存過程 begin output date end 建一張表...