この例では、FNC_SetInternalValueを使用して、文字列からJSONインスタンスを作成します。
SQL定義:
REPLACE FUNCTION setJSONValue (a1 VARCHAR(100)) RETURNS JSON(100) NO SQL PARAMETER STYLE TD_GENERAL DETERMINISTIC LANGUAGE C EXTERNAL NAME 'CS!setJSONValue!setJSONValue.c!F!setJSONValue';
C関数定義、setJSONValue.c:
#define SQL_TEXT Latin_Text
#include <sqltypes_td.h>
#include <string.h>
#include <stdio.h>
void setJSONValue (VARCHAR_LATIN *jsonstr,
JSON_HANDLE *json_instance,
char sqlstate[6])
{
FNC_SetInternalValue((*json_instance),
(void*)jsonstr,
strlen(jsonstr));
}
問合わせの例:
SELECT setJSONValue('{"CompanyName":"Teradata"}').JSONExtractValue('$.CompanyName');
結果:
setJSONValue('{"CompanyName":"Teradata"}').JSONEXTRACTVALUE(
------------------------------------------------------------
Teradata