-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJSONcode.sqlrpgle
More file actions
77 lines (52 loc) · 1.37 KB
/
Copy pathJSONcode.sqlrpgle
File metadata and controls
77 lines (52 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
**FREE
ctl-opt dftactgrp(*no) actgrp(*new);
dcl-s jsonData varchar(500);
dcl-s result varchar(200);
dcl-s skill varchar(50);
dcl-s debugValue varchar(1000);
//JSON_OBJECT
exec sql
select cast(json_object('name' value 'Rishabh',
'age' value 25) as varchar(500))
into :jsonData
from sysibm.sysdummy1;
debugValue = 'JSON_OBJECT: ' + jsonData;
//JSON_ARRAY
exec sql
select cast(json_array('RPG','SQL','Java') as
varchar(500))
into :jsonData
from sysibm.sysdummy1;
debugValue = 'JSON_ARRAY: ' + jsonData;
jsonData = '{"name":"Rishabh","skills":["RPG","SQL","Java"]}';
//JSON_VALUE (single value)
exec sql
select json_value(:jsonData, '$.name')
into :result
from sysibm.sysdummy1;
debugValue = 'JSON_VALUE name: ' + result;
//JSON_QUERY (array/object)
exec sql
select json_query(:jsonData, '$.skills')
into :result
from sysibm.sysdummy1;
debugValue = 'JSON_QUERY skills: ' + result;
//JSON_TABLE Array Rows
exec sql
declare c1 cursor for
select skill
from json_table(:jsonData,
'$.skills[*]'
columns (
skill varchar(20) path '$'
)) as jt;
exec sql open c1;
dow sqlcode = 0;
exec sql fetch c1 into :skill;
if sqlcode = 0;
debugValue = 'Skill:'+ skill;
endif;
enddo;
exec sql close c1;
*inlr = *on;
return;