JSON型の値の設定例 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL外部ルーチン プログラミング

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

この例では、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