PL/SQL 中的存儲過程與函數

存儲過程概述

PL/SQL塊分類

PL/SQL塊分類:匿名塊、命名塊
匿名塊:不保存在數據庫中,沒有名稱,不能夠重複調用
命名塊:存在數據庫中,有名稱,能夠重複調用
命名塊:存儲過程、函數、觸發器、包sql

存儲過程與函數概述

存儲過程與函數:都是一個子程序,完成必定的功能
存儲過程:沒有返回值,能夠調用
函數:必須包含一個返回值,只能做爲表達式的一部分使用數據庫

存儲過程的建立

存儲過程的建立

CREATE PROCEDURE proc[(name [IN|OUT|INOUT] type, ...)]
AS|IS
    declare statement;
BEGIN
    statement;
EXCEPTION
    exception process;
END;
參數 描述 詳解
IN 只讀 當 SQL 語句建立的時候,該參數的值是未知的。你能夠用 setXXX() 方法將值綁定到 IN 參數裏
OUT 只寫 該參數的值是由 SQL 語句的返回值。你能夠用 getXXX() 方法從 OUT 參數中檢索值
INOUT 可讀寫 該參數同時提供輸入和輸出值。你能夠用 setXXX() 方法將值綁定到 IN 參數裏,而且也能夠用 getXXX() 方法從 OUT 參數中檢索值

存儲過程的調用和刪除

存儲過程的調用

PL/SQL塊:函數

proc[(arg1, ...)]

SQL Plus環境code

BEGIN
    proc[(arg1, ...)]
END;

刪除存儲過程

DROP PROCEDURE proc_name;字符串

JDBC 的 SQL 轉義語法

轉義語法使可以讓你經過使用標準的 JDBC 方法和屬性,來靈活的使用數據庫的某些特定功能,而該特定功能對你來講原本是不可用的。經常使用的 SQL 轉義語法格式以下所示:get

{keyword 'parameters'}

escape 關鍵字

該關鍵字在 LIKE 子句中使用,來定義轉義字符。當使用 SQL 通配符%,來匹配零個或多個字符時,該關鍵字就很是有用。例如-io

String sql = "SELECT symbol FROM MathSymbols
              WHERE symbol LIKE '\%' {escape '\'}";
stmt.execute(sql);

如使用反斜槓字符()做爲轉義字符,必須在 Java 字符串裏使用兩個反斜槓字符,由於反斜槓也是一個Java轉義字符table

fn 關鍵字

該關鍵字表明在數據庫管理系統中使用標量函數。如可以使用 SQL 的 length 函數來計算字符串的長度-搜索

{fn length('Hello World')}

這將返回11,也就是字符串'Hello World'的長度exception

call 關鍵字

該關鍵字是用來調用存儲過程的。例如,對於一個須要一個 IN 參數的存儲過程,使用如下語法-

{call my_procedure(?)};

對於須要一個 IN 參數並返回一個 OUT 參數的存儲過程,使用下面的語法-

{? = call my_procedure(?)};

oj 關鍵字

該關鍵字用來表示外部鏈接,其語法以下所示-

{oj outer-join}

其中 outer - join = 表 { LEFT | RIGHT | FULL } OUTER JOIN {表| outer - join }的搜索條件。例如-

String sql = "SELECT Employees 
              FROM {oj ThisTable RIGHT
              OUTER JOIN ThatTable on id = '100'}";
stmt.execute(sql);
相關文章
相關標籤/搜索