DB2資料庫中建立定義函式

2021-07-02 20:03:49 字數 1897 閱讀 9906

2010-08-31 16:13 佚名 網際網路 

字型大小:t

|  t

我們可以建立使用者定義函式來擴充套件內建的 db2 函式。例如,建立計算複雜的算術表示式或操作字串的函式,然後在 sql 語句中像對待任何現有的內建函式一樣引用這些函式。

本文將為您詳細介紹db2資料庫中建立使用者自定義行數,用以擴充套件擴充套件內建的 db2 函式的方法,供您參考,希望對您有所幫助。

可以建立使用者定義函式來擴充套件內建的 db2 函式。例如,建立計算複雜的算術表示式或操作字串的函式,然後在 sql 語句中像對待任何現有的內建函式一樣引用這些函式。

假設需要乙個返回圓的面積的函式,這個函式的輸入引數是圓的半徑。內建的 db2 函式中沒有這樣的函式,但是可以建立乙個使用者定義的 sql 標量函式 來執行這個任務,可以在 sql 語句中支援標量函式的任何地方引用這個函式。 create function ca (r double)

returns double

language sql

contains sql

no external action

deterministic

return 3.14159 * (r * r);

no external action 子句指出這個函式不會對資料庫管理程式不管理的物件的狀態有任何影響。deterministic 關鍵字指出這個函式對於給定的引數值總是返回相同的結果。在查詢優化期間會使用這個資訊。執行這個函式的簡便方法是在乙個查詢中引用它。在下面的示例中,針對 sysibm.sysdummy1 編目檢視(其中只有一行)執行這個查詢(可以選擇任意的查詢目標): db2 select ca(96.8) as area from sysibm.sysdummy1

area

------------------------

+2.94374522816000e+004

1 record(s) selected.

還可以建立使用者定義的表函式,它接受零個或更多的輸入引數並以表的形式返回資料。表函式只能用在 sql 語句的 from 子句中。

假設需要乙個返回擁有特定工作的所有職員的姓名和職員號的函式,函式的引數是這個工作的頭銜。下面是執行這個任務的表函式示例: create function jobemployees (job varchar(8))

returns table (

empno char(6),

firstname varchar(12),

lastname varchar(15)

)language sql

reads sql data

no external action

deterministic

return

select empno, firstnme, lastname

from employee

where employee.job = jobemployees.job;

以下查詢在 from 子句中引用這個新的表函式,並傳遞工作頭銜 『clerk』 作為函式的引數。語法要求用關鍵字 as 引入乙個相關名稱: db2 select * from table(jobemployees('clerk')) as clerk

empno  firstname    lastname

------ ------------ ---------------

000120 sean         o'connell

000230 james        jefferson

000240 salvatore    marino

000250 daniel       smith

000260 sybil        johnson

000270 maria        perez

6 record(s) selected.

建立 DB2 資料庫

可以使用 tivoli privacy manager 資料庫建立程式或使用資料庫產品介面可以建立 tivoli privacy manager 資料庫 表和配置資料庫。使用 db2 資料庫建立程式 使用 tivoli privacy manager 資料庫建立程式來建立 tivoli privac...

建立DB2資料庫

建立db2資料庫 1.建立資料庫 db2cmd db2 list db directory 查詢現存的資料庫 create db dbname 建立資料庫 2.建立使用者名稱密碼 方法一 db2cmd db2cc 選擇建立好的資料庫 使用者和組物件 資料庫使用者中新建 我的電腦 管理 本地使用者和組...

DB2 資料庫建立

登入資料庫管理使用者 db2inst db2 db2inst db2 create database dbname automatic storage yes on dbauto dbpath on database using codeset gbk territory cn collate us...