預存程序是一組預先定義好的 SQL 語句,可以在執行過程中呼叫多次。它就像一個模板,你可以在其中定義特定的參數和邏輯,這些參數和邏輯在每次被呼叫時都會被執行。 Oracle 資料庫支援預存程序,以下我們將介紹如何撰寫 Oracle 預存程序 SQL 語句。
要建立一個 Oracle 儲存過程,你需要用 CREATE PROCEDURE 語句。語法如下:
CREATE PROCEDURE procedure_name(parameter1 datatype, parameter2 datatype, parameter3 datatype, ...)
IS
# -- 變數宣告
BEGIN
-- 預存程序的##SQL##SQL語句
-- 可以包含條件語句、循環語句等。
END;
在建立預存程序時,需要指定該預存程序的參數。在參數清單中,你需要指定每個參數的名稱、資料類型和長度。以下是一個範例:
CREATE PROCEDURE get_employee_details (employee_id IN NUMBER, employee_name OUT VARCHAR2, employee_salary OUT NUMBER)
IS
BEGININ##loyy STOELECT last_name INTO TOee_wwwy LTOIN# employees
WHERE employee_id = get_employee_details.employee_id;
END;
在這個範例中,我們定義了三個參數:employee_id、employee_name 和employee_salary。 employee_id 是一個輸入參數,而 employee_name 和 employee_salary 都是輸出參數。
CREATE PROCEDURE get_top_employees (top_n IN NUMBER)
IS -- 變數宣告
total_salary NUMBER;
SELECT SUM(salary) INTO total_salary FROM employees;
-- 計算平均工資
DECLARE
avg_salary NUMBER;
BEGIN
avg_salary := total_salary / top_n; -- 查找工资大于平均值的前 N 名员工 FOR r IN (SELECT * FROM employees WHERE salary > avg_salary ORDER BY salary DESC) LOOP -- 输出结果 DBMS_OUTPUT.PUT_LINE('Employee ID: ' || r.employee_id || ', Name: ' || r.last_name || ', Salary: ' || r.salary); END LOOP;
#;
在這個例子中,我們計算了所有員工的薪資總和,然後計算出平均薪資。接著,我們找出薪資大於平均值的前 N 名員工並將結果輸出。
以上是如何寫Oracle預存程序的SQL語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!