自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DB2中創(chuàng)建和使用SQL用戶定義函數(shù)

數(shù)據(jù)庫(kù)
我們可以創(chuàng)建用戶定義函數(shù)來(lái)擴(kuò)展內(nèi)置的 DB2 函數(shù)。例如,創(chuàng)建計(jì)算復(fù)雜的算術(shù)表達(dá)式或操作字符串的函數(shù),然后在 SQL 語(yǔ)句中像對(duì)待任何現(xiàn)有的內(nèi)置函數(shù)一樣引用這些函數(shù)。

本文將為您詳細(xì)介紹DB2數(shù)據(jù)庫(kù)中創(chuàng)建用戶自定義行數(shù),用以擴(kuò)展擴(kuò)展內(nèi)置的 DB2 函數(shù)的方法,供您參考,希望對(duì)您有所幫助。

可以創(chuàng)建用戶定義函數(shù)來(lái)擴(kuò)展內(nèi)置的 DB2 函數(shù)。例如,創(chuàng)建計(jì)算復(fù)雜的算術(shù)表達(dá)式或操作字符串的函數(shù),然后在 SQL 語(yǔ)句中像對(duì)待任何現(xiàn)有的內(nèi)置函數(shù)一樣引用這些函數(shù)。

假設(shè)需要一個(gè)返回圓的面積的函數(shù),這個(gè)函數(shù)的輸入?yún)?shù)是圓的半徑。內(nèi)置的 DB2 函數(shù)中沒有這樣的函數(shù),但是可以創(chuàng)建一個(gè)用戶定義的 SQL 標(biāo)量函數(shù) 來(lái)執(zhí)行這個(gè)任務(wù),可以在 SQL 語(yǔ)句中支持標(biāo)量函數(shù)的任何地方引用這個(gè)函數(shù)。 CREATE function ca (r DOUBLE)
            RETURNS DOUBLE
            LANGUAGE SQL
            CONTAINS SQL
            NO EXTERNAL ACTION
            DETERMINISTIC
            RETURN 3.14159 * (r * r);
            
NO EXTERNAL ACTION 子句指出這個(gè)函數(shù)不會(huì)對(duì)數(shù)據(jù)庫(kù)管理程序不管理的對(duì)象的狀態(tài)有任何影響。DETERMINISTIC 關(guān)鍵字指出這個(gè)函數(shù)對(duì)于給定的參數(shù)值總是返回相同的結(jié)果。在查詢優(yōu)化期間會(huì)使用這個(gè)信息。執(zhí)行這個(gè)函數(shù)的簡(jiǎn)便方法是在一個(gè)查詢中引用它。在下面的示例中,針對(duì) SYSIBM.SYSDUMMY1 編目視圖(其中只有一行)執(zhí)行這個(gè)查詢(可以選擇任意的查詢目標(biāo)): db2 SELECT ca(96.8) AS area FROM sysibm.sysdummy1
            AREA
            ------------------------
            +2.94374522816000E+004
            1 record(s) selected.
            
還可以創(chuàng)建用戶定義的表函數(shù),它接受零個(gè)或更多的輸入?yún)?shù)并以表的形式返回?cái)?shù)據(jù)。表函數(shù)只能用在 SQL 語(yǔ)句的 FROM 子句中。 #p#

假設(shè)需要一個(gè)返回?fù)碛刑囟üぷ鞯乃新殕T的姓名和職員號(hào)的函數(shù),函數(shù)的參數(shù)是這個(gè)工作的頭銜。下面是執(zhí)行這個(gè)任務(wù)的表函數(shù)示例: 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;
            
以下查詢?cè)?FROM 子句中引用這個(gè)新的表函數(shù),并傳遞工作頭銜 ‘CLERK’ 作為函數(shù)的參數(shù)。語(yǔ)法要求用關(guān)鍵字 AS 引入一個(gè)相關(guān)名稱: 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.
            

 


 

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-11-02 14:08:29

DB2創(chuàng)建用戶

2010-09-30 16:00:40

DB2動(dòng)態(tài)SQL

2010-08-25 13:46:00

DB2函數(shù)日期

2010-11-02 11:36:10

DB2索引創(chuàng)建

2010-09-30 14:48:26

DB2查詢

2010-09-01 09:40:33

DB2函數(shù)OLAP

2010-11-02 13:40:34

DB2函數(shù)調(diào)用

2010-11-03 16:25:51

DB2列函數(shù)

2010-11-02 14:29:11

DB2用戶組

2010-09-06 15:13:05

DB2

2010-11-04 15:39:40

DB2 SQL語(yǔ)句

2010-01-26 10:36:22

DB2

2011-04-15 13:12:08

DB2游標(biāo)

2010-02-03 09:16:01

DB2

2010-11-04 15:20:33

DB2日期函數(shù)

2010-09-30 13:27:09

DB2游標(biāo)

2010-09-07 08:27:17

DB2常用函數(shù)

2010-11-02 14:45:12

DB2創(chuàng)建表空間

2010-08-10 15:30:21

2010-08-16 17:07:43

DB2 trc
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)