SQL教程 SQL語法 過程和函式概述

2022-06-06 16:57:08 字數 1653 閱讀 4634

省略乙個儲存過程:

create or replace procedure proc1

(p_para1 varchar2,

p_para2 varchar2,

p_para3 in out varchar2)as

v_name varchar2(20);

begin

v_name := 'zhangsan';

p_para3 := v_name;

dbms_output.put_line('p_para3:'||p_para3);

exception

...end proc1;

乙個最簡單的儲存過程,大體分為:

case

when (condition) then (statement)

when (condition) then (statement)

else (statement)

end; 

if (condition) then

(statement)

else if (condition) then 

(statement)

else (statement)

end if;

for (condition) loop

(statement)

end loop;

while (condition) loop

(statement)

end loop;

create or replace function proc1

(引數列表

) return varchar2  --返回引數型別

as變數宣告

begin

過程語句

rerurn 可以是宣告的變數也可以是任意資料

end proc1;

除了系統提供的函式外,使用者還可以根據需要自定義函式(user defined functions)。使用者自定義函式不能用於執行一系列改變資料庫狀態的操作,但可以像系統函式一樣在查詢或儲存過程等的程式段中使用,也可以像儲存過程一樣通過execute命令來執行。

在sql server中根據函式返回值形式的不同,將udf分為三種型別:標量型函式(scalar fuctions)、內聯錶值型函式(inline table_valued functions)和多宣告錶值型函式(multi-statement table-valued functions)。

標量型函式返回乙個確定型別的標量值,其返回值型別為除text, ntext, image, cursor, timestamp 和 table型別外的其他資料型別。函式體語句定義在begin-end語句內,其中包含了可以返回值的transact-sql命令。

內聯錶值型函式以表的形式返回乙個返回值,即它返回的是乙個表內聯錶值型函式,沒有由begin-end語句括起來的函式體。其返回的表由乙個位於return子句中的select命令段從資料庫中篩選出來。內聯錶值型函式功能相當於乙個引數化的檢視。

多宣告錶值型函式可以看作標量型和內聯錶值型函式的結合體。它的返回值是乙個表,但它和標量型函式一樣有乙個用begin-end語句括起來的函式體,返回值的表中的資料是由函式體中的語句插入的。由此可見,它可以進行多次查詢,對資料進行多次篩選與合併,彌補了內聯錶值型函式的不足。

這三種型別到udf建立語法見下篇部落格。

sql儲存過程語法

一.注釋 單行注釋,從這到本行結束為注釋sql 語法,類似c c 中 多行注釋,類似c c 中 二.變數 int,smallint,tinyint,decimal,float,real,money smallmoneysql 語法,text image,char,varchar。語法 declare...

sql 儲存過程 函式

1 建立儲存過程 1 語法 create or replace procedure procedure name argument type 型別 變數的說明 begin 執行部分 exception 可選的異常錯誤處理程式 end 建立過程 sql create or replace proced...

SQL Server常用函式 SQL語法函式

關係型資料庫 sql語法 函式 建議 一 字元轉換函式 1 ascii 返回字元表示式最左端字元的ascii 碼值。在ascii 函式中,純數字的字串可不用 括起來,但含其它字元的字串必須用 括起來使用,否則會出錯。2 char 將ascii 碼轉換為字元。如果沒有輸入0 255 之間的ascii ...