PL/SQL:
知識回顧:
SQL: 結構化查詢語言;
T-SQL: microsoft sql語言;
PL/SQL: Oracle sql語言;
變量命名規則:
1.首字母必須是字母,可以包含字母,下劃線,$,#,數字
2.字符長度在30內
3.不能為關鍵字,保留字
命名規范:
1.見名知意; 見書hibernate p78;
2.普通變量: v_變量名
3.游標變量: cursor_變量名;
4.參數變量:p_變量名;
數據類型:
標量類型
timestamp:時間戳 比date更精確:精確到毫秒 lob類型
屬性類型 表名.列名%type
變量賦值:
硬編碼:變量名:=值
查詢賦值: select 列名 into 變量名 from 表名 where 條件
begin end中可以包含:
DML:數據操作語言 >>del,insert,update
不能寫在begin end中:使用動態SQL:excute immediate (SQL);
DDL:數據定義語言 >>create,drop,alter,truncate
DCL:數據控制語言 >>grant,revoke
DQL:數據查詢語言 >>select 解決辦法:游標;
控制語句:
if 布爾表達式
循環: loop [exit 退出循環] end loop;
for loop end loop;
游標:
聲明: cursor cursor_表名 is select * from 表名 --定義變量 表名%rowtype;
》打開:begin open 游標名; end;
》提取:fetch 游標名 into
》關閉:close 游標名;
for循環會隱式聲名 記錄類型 rowtype的循環變量 游標查詢語句必須查詢所有列(select *) 自動打開,提取關閉游標
for v_row in (查詢select) loop v_row.列; end loop;
java中調用存儲過程:
CallableStatement call=con.prepareCall("{call 存儲名([參數1,參數2])}");
// 填坑
call.set....
//注冊輸出參數類型
call.registerOutParameter(2,OracleTypes.CURSOR);
//獲取輸出值
call.execute();
//獲取輸出值
ResultSet rs=(ResultSet)call.getObject(2);
文章列表