以下に示すのは、テーブル関数の宣言方法の例です。
/***** C source file name: store_data.c *****/
#define SQL_TEXT Latin_Text
#include <sqltypes_td.h>
#include <string.h>
void get_store_data( INTEGER *filetoread, /* input argument */
INTEGER *storeno, /* output argument */
INTEGER *itemno, /* output argument */
INTEGER quantsold, /* output argument */
int *filetoreadIsNull,
int *storenoIsNull,
int *itemnoIsNull,
int *quantsoldIsNull;
char sqlstate[6],
SQL_TEXT extname[129],
SQL_TEXT specific_name[129],
SQL_TEXT error_message[257] )
{
...
}
サ―バーにテーブル関数をインストールする、対応するCREATE FUNCTION文は、以下のようになります。
CREATE FUNCTION getStoreData (FileToRead INTEGER) RETURNS TABLE (StoreNo INTEGER ,ItemNo INTEGER ,QuantSold INTEGER) LANGUAGE C NO SQL EXTERNAL NAME 'CS!getstoredata!udfsrc/store_data.c!F!get_store_data' PARAMETER STYLE SQL;
以下に、FROM句からテーブル関数を呼び出すINSERT … SELECT文の例を示します。
INSERT INTO Sales_Table SELECT * FROM TABLE (getStoreData(9005)) AS tf;