資料庫中函式的儲存過程區別;
儲存過程和函式都是為了 可重複的 執行資料庫中的sql語句集合。 儲存過程相對比較複雜,可以輸出多個引數,而函式相對比較簡單,針對性比較強,輸出的是值或者表物件。
寫法上:
1.儲存過程:引數列表可以有 in 、out、in out引數。
2.函式:引數列表 in 引數 , 並且有return《返回值型別,無引數型別》。
返回值上;
1.儲存過程:可以返回多個值。
2.函式:返回乙個值
呼叫方式上:
1.儲存過程:exec|execute 過程名。pl/sql直接呼叫。
2.函式:pl/sql直接呼叫。可以select 函式名 from dual;
語法上:
1.儲存過程:
create or replace procedure 過程名(in、out、in out引數)
is | as
變數名 初始化
begin
執行體exception
捕獲異常 從錯處理
end
例子:
create or replace procedure up_wap(v_param1 in out varchar2,v_param2 in out varchar2)
isv_temp varchar2(20);
begin
dbms_output.put_line('交換前引數1:'||v_param1||' 引數2:'||v_param2);
v_temp:=v_param1;
v_param1:=v_param2;
v_param2:=v_temp;
dbms_output.put_line('交換後引數1:'||v_param1||' 引數2:'||v_param2);
exception
when others then dbms_output.put_line('there is a error when the procedure up_wap executing!');
end up_wap;
-- 呼叫儲存過程
declare
v_param1 varchar2(20):='param1';
v_param2 varchar2(20):='param2';
begin
up_wap(v_param1 => v_param1,v_param2 => v_param2);
end;
2.函式:
create function 函式名(in 引數)
return 《返回值型別、無長度說明》
is | as
變數初始化 宣告
begin
執行體return < 返回值》
exception
捕獲異常 從錯處理
end 函式名
例子:create function uf_select_name_by_id_test(v_id in number)
return varchar2
isv_name t_test.t_name%type;
begin
select t_name into v_name from t_test where t_id=v_id;
return v_name;
exception
when others then dbms_output.put_line('error');
end uf_select_name_by_id_test;
/select uf_select_name_by_id_test(1) 姓名 from dual;-- select呼叫
declare --pl/sql語句塊呼叫
v_name varchar2(20);
begin
v_name:=uf_select_name_by_id_test(1);
dbms_output.put_line('name = '||v_name);
end;/
函式(初學者)
乙個較大的程式可分為若干個程式模組,每乙個模組用來實現乙個特定的功能。在高階語言中用子程式實現模組的功能,子程式由函式來完成。乙個c程式可由乙個主函式和若干個其他函式構成。函式間的呼叫關係 由主函式呼叫其他函式,其他函式也可以相互呼叫。同乙個函式可以被乙個或多個函式呼叫任意多次。例 include ...
atoi函式(初學者)
atoi 表示 ascii to integer 是把字串轉換成整型數的乙個函式,應用在電腦程式和辦公軟體中。int atoi const char nptr 函式會掃瞄引數 nptr字串,會跳過前面的空白字元 例如空格,tab縮排 等。如果 nptr不能轉換成 int 或者 nptr為空字串,那麼...
初學者談初學者學html
這是乙個段落。解釋一下就是 html 與 html 之間的文字是描述網頁。head 與 head 之間的文字是文件的元資料。title 與 之間的文字是文件的標題。body 與 body 之間的文字是可見的頁面內容,是文章的主體部分。h1 與 h1 之間的文字被顯示為乙個大標題。p 與 p 之間的文...