1. 程式人生 > >DB2資料庫中建立定義函式

DB2資料庫中建立定義函式

本文將為您詳細介紹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資料庫建立定義函式

本文將為您詳細介紹DB2資料庫中建立使用者自定義行數,用以擴充套件擴充套件內建的 DB2 函式的方法,供您參考,希望對您有所幫助。 可以建立使用者定義函式來擴充套件內建的 DB2 函式。例如,建立計算複雜的算術表示式或操作字串的函式,然後在 SQL 語句中像對待任何現有的內建函式一樣引用這些函式。

資料庫定義儲存函式詳解

        MySQL資料庫中有很多已經存在的函式,比如count、sun、min、max和avg等等,除了這些,我們還可以自定義自己所需要的儲存函式,其建立儲存函式的基本形式如下:CREATE FUNCTION func_name ([func_parameter[,.

SpringCloud分散式事務實戰(七)在微服務1建立整合函式,呼叫微服務2

(1) 新增jar pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-s

學會使用MySQL定義函式和儲存過程

一、快速瞭解什麼是儲存過程和函式?   儲存過程和函式是事先經過編譯並存儲在資料庫中的一段 SQL 語句的集合,呼叫儲存過程 和函式可以簡化應用開發人員的很多工作,減少資料在資料庫和應用伺服器之間的傳輸,對 於提高資料處理的效率是有好處的。   在對儲存過程或函式進行操作時,需要

c++ 預設定義 函式過載 引用

##概要 本片部落格 的主要內容有, c++中函式預設定義、 函式過載的機制 、函式名在VS環境下編譯後的修改,引用 及其 注意事項。最後列了一個表 文章目錄 預設定義 預設引數 預設引數的分類

springboot整合jpa,在postgresql資料庫建立主鍵自增表

依賴檔案 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

JDBC——用Java在資料庫建立一個Student表

一、Studnet表: 屬性:sno int(20)、cno int(4)、grade int(4)。即學號、課程號、成績。 二、Java中的類 用到的類: DBUtil(連線、關閉資料庫)、Student(學生資訊)、Userdemo(介面:實現Student表的增刪該查)、Userd

DB2資料庫建立和表空間建立更改

1.建立資料庫 create database testdb automatic storage yes on /database using codeset UTF-8 territory cn collate using system  PAGESIZE 32768&nbs

hive定義函式及自定義json字串解析函式

hive中如何定義自己的函式 寫一個Java 程式,實現想要的函式功能 1.匯入hive安裝目錄的lib目錄的包 2新建一個類繼承 UDF類 3.過載父類中evaluate方法; 4.寫下自己的邏輯 package test; import

Oracle資料庫的字串函式

最近學了一些關於Oracle的字串處理的方法,在這裡記下來。 首先是sql中一些常用的字串替代方法: % 表示零或多個字元   _  表示一個字元  對於特殊符號可使用 ESCAPE 識別符號來查詢    select * from

微服務分散式事務實戰(七)在微服務1建立整合函式,呼叫微服務2

(1) 新增jar pom.xml <dependency> <groupId>org.springframework.cloud</groupId>

C#利用lambda在函式建立內部函式

有使用過JS的朋友,相信都知道function。JS中的function是可以在裡面在定義一個作為內部使用的。有時為了控制作用域,或者這種小函式只在這個函式體內會使用,所以就不希望在外部在作額外的定義。那C#中有沒有這樣類似的方式呢?答案是有的。 在C#中要實現,需要用到

ThinkPHP3.2.2定義函式的一些方法

thinkphp中自定義函式的使用方法: 一、將函式放置於系統目錄:ThinkPHP/Common/function.php 下,可直接呼叫; 二、將自定義函式旋轉於系統目錄擴充套件函式檔案:ThinkPHP/Common/extend.php下,呼叫時需要

資料庫的concat函式的使用

這次在資料庫的模糊查詢中用到了這個函式,所以拿出來總concat函式本來是MYsql中的一個函式方法, CONCAT(str1,str2,…) 其作用是將括號中的字串連線起來,但是有一定的規則就是:在連線字串的時候,只要其中一個是NULL,那麼將返回NULL! 那就看我這

javascript定義函式的幾種形式

內容主要是講述javascript在類(原型物件)中定義方法的幾種形式,簡要之主要有三種:this關鍵字、prototype關鍵字、var 物件名={name:value,name2:value2};這三種形式。 在publicFunction.js檔案中定義js函式。

全面瞭解DB2資料庫的各資料型別

      DB2資料庫內建資料型別可以分成數值型(numeric)、字串型(character string)、圖形字串(graphic string)、二進位制字串型(binary string)或日期時間型(datetime)。還有一種叫做 DATALINK 的特

EXCEL 定義函式的應用(關於 XOR 在 EXCEL 的用法 及 文字型數字求和)

EXCEL 中,能否同調用內建函式一樣在工作表中呼叫自已製作的自定義函式,出現對話方塊.同時也能做到像內建函式對話方塊裡的說明?答案是肯定的,下面舉例說明:題目: ①對文字型一系列數字進行求和(SUM()返回0)              ②對數值型的一系列數字異或操作(EX

linux下在mysql資料庫建立和刪除使用者

第一步:進入mysql mysql -uroot msyql -p 回車輸入root使用者的密碼(安裝mysql時自己指定的) 建立一個test使用者,密碼位test,“%“代表聯網中的所有使用者都能用test使用者名稱訪問資料庫(所有資料庫中的所有表); grant a

Spring整合Hibernate後沒有自動在資料庫建立表結構

Hibernate配置檔案hibernate.cfg.xml中關於SessionFactory節點配置通常如下: <session-factory> <!-- Database connection settings --> <proper

Oracle資料庫的instr函式的用法

一、instr函式的用法 在Oracle中可以使用instr函式對某個字串進行判斷,判斷其是否含有指定的字元。在一個字串中查詢指定的字元,返回被查詢到的指定的字元的位置。 語法: instr(sourceString,destString,start,