Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 9129

Re: Json in SQL Anywhere16

$
0
0

Yes Chang...

 

Below is the whole script starting from creating Json with inner Array and Parsing back to normal table.

 

-----------------------------------------------------------------------

 

// Create Table

CREATE TABLE "User" (

"id" NUMERIC(10,0) NOT NULL,

"lastname" VARCHAR(50) NULL,

"firstname" VARCHAR(50) NULL,

"address" VARCHAR(100) NULL,

"zip" VARCHAR(9) NULL, PRIMARY KEY ( "id" ASC )

) IN "system";

 

// Insert Data

Insert into "User" values (1,'John','Jony','Street 10, Andrew

Corner','12345');

Insert into "User" values (2,'Jason','Jack','Street 50, Moon

Corner','56456');

Insert into "User" values (3,'John','Jony','Street 20, Mars

Corner','56878');

Insert into "User" values (4,'Jill','Jill','Street 90, Rors

Corner','12345');

 

// Parse data to Json format

select DISTINCT "User"."firstname", "User"."lastname",

"address"."address" as street_1, "address"."zip" from dba."User" as

"User",

(select DISTINCT "User"."address", "User".firstname, "User"."zip" from

dba."User" as "User", dba."User" as User2 where "User".firstname =

User2.firstname and

"User".id != User2.id GROUP BY "User"."address", "User"."firstname",

"User"."lastname", "User"."zip") AS "address"

WHERE "User"."firstname" = "address"."firstname" ORDER BY 1 FOR JSON

AUTO;

 

// Alternate way by using Json Explicit

http://dcx.sybase.com/sa160/fr/dbusage/for-json-explicit.html

 

// Parse data back to normal table

BEGIN

    -- Create variable and table

    CREATE OR REPLACE VARIABLE json_data LONG VARCHAR;

    CREATE TABLE IF NOT EXISTS tdata (FirstName long varchar, LastName

long varchar, street_1 long varchar, zip long varchar);

    DELETE FROM tdata;

    -- Sample data

    SET json_data =

'[{"User":{"firstname":"Jony","lastname":"John","address":[{"street_1":"Street 10, Andrew Corner","zip":"12345"},{"street_1":"Street 20,

MarsCorner","zip":"56878"}]}}] ';

    -- Parse JSON

    CALL sp_parse_json('sarray',json_data);

    -- Insert into table

    INSERT INTO tdata (FirstName, LastName, street_1, zip)

    SELECT

        sarray[[1]]."User".firstname,

        sarray[[1]]."User".lastname,

        sarray[[1]]."User".address[[row_num]].street_1,

        sarray[[1]]."User".address[[row_num]].zip

    FROM sa_rowgenerator(1,CARDINALITY(sarray[[1]]."User".address));

    SELECT * FROM tdata;

END;


Viewing all articles
Browse latest Browse all 9129

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>