fbpx
维基百科

存储程序

存储过程,又稱儲存程序(英語:Stored Procedure),是在資料庫儲存複雜程序,以便外部程式呼叫的資料庫物件,可以視為資料庫的一種函數子程序

優缺點 编辑

優點 编辑

預存程序具有下列的好處:

  • 預存程序可封裝,並隱藏複雜的商業邏輯。
  • 預存程序可以回傳值,並可以接受參數。
  • 預存程序無法使用 SELECT 指令執行,因為它是子程序,與檢視表資料表或使用者定義函數不同。
  • 預存程序可以用在資料檢驗,強制實行商業邏輯等。

缺點 编辑

  • 預存程序,往往客製化於特定的資料庫上,因為支援的程式語言不同。當切換到其他廠商的資料庫系統時,需要重寫原有的預存程序。
  • 預存程序的效能調校與撰寫,受限於各種資料庫系統。

支援預存程序的資料庫 编辑

資料庫系統 預存程序使用的程式語言
CUBRID Java
DB2 SQL PL 或 Java
Firebird PSQL (Fyracle 亦支援部分 Oracle 的 PL/SQL)
Informix SPL
Microsoft SQL Server Transact-SQL 及多種 .NET Framework 語言
MySQL 自己標準的預存程序,很接近 SQL:2003 標準
Oracle PL/SQLJava
PostgreSQL PL/pgSQL,亦可使用自己的函式語這,例如 pl/perl 或 pl/php
SAP SQLScript 或 R
Sybase ASE Transact-SQL

範例 编辑

預存程序是資料庫物件之一,必須使用資料定義語言來建立,例如:

以下範例,以Microsoft的SQL Server所以採用的T-SQL語法表示。
CREATE PROCEDURE usp_AddProduct (  @Barcode varchar(13),  @Caption nvarchar(50) ) AS BEGIN  IF LEN(@Barcode) < 13   RAISERROR('Barcode length is too short.')  INSERT INTO MyProducts (Barcode, Caption) VALUES (@Barcode, @Caption) END 

外部程序需要使用 EXECUTE 或 CALL 來呼叫預存程序。

EXEC usp_AddProduct '2293891100011', 'MyProductCaption' 

存储程序, 存储过程, 又稱儲存程序, 英語, stored, procedure, 是在資料庫儲存複雜程序, 以便外部程式呼叫的資料庫物件, 可以視為資料庫的一種函數或子程序, 目录, 優缺點, 優點, 缺點, 支援預存程序的資料庫, 範例優缺點, 编辑優點, 编辑, 預存程序具有下列的好處, 預存程序可封裝, 並隱藏複雜的商業邏輯, 預存程序可以回傳值, 並可以接受參數, 預存程序無法使用, select, 指令執行, 因為它是子程序, 與檢視表, 資料表或使用者定義函數不同, 預存程序可以用在資料檢驗, 強制. 存储过程 又稱儲存程序 英語 Stored Procedure 是在資料庫儲存複雜程序 以便外部程式呼叫的資料庫物件 可以視為資料庫的一種函數或子程序 目录 1 優缺點 1 1 優點 1 2 缺點 2 支援預存程序的資料庫 3 範例優缺點 编辑優點 编辑 預存程序具有下列的好處 預存程序可封裝 並隱藏複雜的商業邏輯 預存程序可以回傳值 並可以接受參數 預存程序無法使用 SELECT 指令執行 因為它是子程序 與檢視表 資料表或使用者定義函數不同 預存程序可以用在資料檢驗 強制實行商業邏輯等 缺點 编辑 預存程序 往往客製化於特定的資料庫上 因為支援的程式語言不同 當切換到其他廠商的資料庫系統時 需要重寫原有的預存程序 預存程序的效能調校與撰寫 受限於各種資料庫系統 支援預存程序的資料庫 编辑資料庫系統 預存程序使用的程式語言CUBRID JavaDB2 SQL PL 或 JavaFirebird PSQL Fyracle 亦支援部分 Oracle 的 PL SQL Informix SPLMicrosoft SQL Server Transact SQL 及多種 NET Framework 語言MySQL 自己標準的預存程序 很接近 SQL 2003 標準Oracle PL SQL 或 JavaPostgreSQL PL pgSQL 亦可使用自己的函式語這 例如 pl perl 或 pl phpSAP SQLScript 或 RSybase ASE Transact SQL範例 编辑預存程序是資料庫物件之一 必須使用資料定義語言來建立 例如 以下範例 以Microsoft的SQL Server所以採用的T SQL語法表示 CREATE PROCEDURE usp AddProduct Barcode varchar 13 Caption nvarchar 50 AS BEGIN IF LEN Barcode lt 13 RAISERROR Barcode length is too short INSERT INTO MyProducts Barcode Caption VALUES Barcode Caption END 外部程序需要使用 EXECUTE 或 CALL 來呼叫預存程序 EXEC usp AddProduct 2293891100011 MyProductCaption 取自 https zh wikipedia org w index php title 存储程序 amp oldid 65663779, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。