首頁 > 資料庫 > Oracle > 主體

oracle預存程​​序執行sql

WBOY
發布: 2023-05-13 12:24:07
原創
1176 人瀏覽過

在 Oracle 資料庫中,預存程序是一組預先定義的 SQL 語句和程式邏輯,可以在特定輸入條件下執行。可以根據業務需求編寫預存程序,然後將其儲存到資料庫中。預存程序在多種業務情境中都非常有用,例如大量資料處理、日誌記錄、自動化流程等。本文將主要討論如何撰寫和執行 Oracle 預存程序中的 SQL 語句。

編寫Oracle 預存程序

建立預存程序

建立預存程序需要使用CREATE PROCEDURE 語句,具體語法如下:

CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter_name [IN | OUT | IN OUT] type [, ...])]
IS
[local_variable_declarations;]
BEGIN
    executable_statements
    [EXCEPTION
        exception_handler
        [exception_handler, ...]]
END [procedure_name];
登入後複製

其中, procedure_name 是預存程序的名稱,parameter_name 是輸入、輸出或輸入輸出參數的名稱,type 是參數的資料類型,local_variable_declarations 是局部變數的宣告語句,executable_statements 是預存程序的主體部分,exception_handler 是例外處理程序。在預存程序內部,可以使用 SQL 語句執行資料庫操作。

範例

下面是一個簡單的預存程序的範例,用於在employee 表中插入新記錄:

CREATE OR REPLACE PROCEDURE add_employee (employee_id IN NUMBER, name IN VARCHAR2, salary IN NUMBER)
IS
BEGIN
    INSERT INTO employee (employee_id, name, salary)
    VALUES (employee_id, name, salary);
    COMMIT;
EXCEPTION
    WHEN OTHERS THEN
        ROLLBACK;
        RAISE;
END add_employee;
登入後複製

這個預存程序有3 個輸入參數,分別是employee_idnamesalary。在預存程序主體內,使用 INSERT INTO 語句將輸入值插入 employee 表中。最後,使用 COMMIT 語句提交更改。如果插入操作失敗,則使用 ROLLBACK 語句回滾到交易開始時的狀態,並使用 RAISE 語句重新拋出異常。

呼叫預存程序

要呼叫預存程序,可以使用CALL 語句,具體語法如下:

CALL procedure_name;
登入後複製

在呼叫預存程序時,可以傳遞輸入參數,以下是一個範例:

CALL add_employee(123, 'John', 5000);
登入後複製

這將呼叫add_employee 預存程序,將值123、'John' 和5000 傳遞給輸入參數employee_idnamesalary。執行結果將是將新記錄插入 employee 表中。

執行 SQL 語句

在預存程序內部,可以使用 SQL 語句執行各種操作。以下是一些常見的 SQL 語句範例:

SELECT 語句

SELECT 語句用於從表格中擷取記錄。以下是SELECT 語句的語法:

SELECT column1, column2, ...
FROM table_name
[WHERE condition];
登入後複製

其中,column1, column2, ... 是要檢索的列名,table_name 是要檢索的表名, [WHERE 條件] 是可選擇的檢索條件。例如,以下 SELECT 語句用於檢索 employee 表中的所有記錄:

SELECT *
FROM employee;
登入後複製

INSERT INTO 語句

INSERT INTO 語句用於將新記錄插入到表中。以下是INSERT INTO 語句的語法:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
登入後複製

其中,table_name 是要插入記錄的表的名稱,column1, column2, ... 是要插入數據的列,value1, value2, ... 是要插入的值。例如,以下 INSERT INTO 語句用於將新記錄插入到 employee 表中。

INSERT INTO employee (employee_id, name, salary)
VALUES (123, 'John', 5000);
登入後複製

UPDATE 語句

UPDATE 語句用於更新表格中的記錄。以下是UPDATE 語句的語法:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
[WHERE condition];
登入後複製

其中,table_name 是要更新的表名,column1 = value1, column2 = value2, ... 是更新的列和對應的值,WHERE condition 是可選的更新條件。例如,以下UPDATE 語句用於將employee 表中name 為'John' 的記錄的salary 值更新為6000:

UPDATE employee
SET salary = 6000
WHERE name = 'John';
登入後複製

DELETE 語句

DELETE 語句用於刪除表中的記錄。以下是 DELETE 語句的語法:

DELETE FROM table_name
[WHERE condition];
登入後複製

其中,table_name 是要刪除記錄的表的名稱,WHERE condition 是可選的刪除條件。例如,以下DELETE 語句用於刪除employee 表中salary 值小於5000 的所有記錄:

DELETE FROM employee
WHERE salary < 5000;
登入後複製

結論

#在Oracle 資料庫中,預存程序是非常有用的工具,用於根據特定的輸入條件執行事先定義好的SQL 語句和程式邏輯。編寫預存程序是一項複雜而有挑戰性的任務,但是只要按照規範編寫,預存程序可以大大簡化資料庫開發和管理的任務。執行 SQL 語句是預存程序的核心部分,需要熟練各種 SQL 語句,並了解如何將其嵌入到預存程序中。

以上是oracle預存程​​序執行sql的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!