以下に示すのは、テーブル関数の宣言方法の例です。
/***** 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;