You are on page 1of 10

DDL

Data Definition Language (DDL) statements are used to define the database structure or
schema. Some examples:
◦CREATE - to create objects in the database
◦ALTER - alters the structure of the database
◦DROP - delete objects from the database
◦TRUNCATE - remove all records from a table, including all spaces allocated for the records are
removed
◦COMMENT - add comments to the data dictionary
◦RENAME - rename an object

DML

Data Manipulation Language (DML) statements are used for managing data within schema
objects. Some examples:
◦SELECT - retrieve data from the a database
◦INSERT - insert data into a table
◦UPDATE - updates existing data within a table
◦DELETE - deletes all records from a table, the space for the records remain
◦MERGE - UPSERT operation (insert or update)
◦CALL - call a PL/SQL or Java subprogram
◦EXPLAIN PLAN - explain access path to data
◦LOCK TABLE - control concurrency

DCL

Data Control Language (DCL) statements. Some examples:


◦GRANT - gives user's access privileges to database
◦REVOKE - withdraw access privileges given with the GRANT command

TCL

Transaction Control (TCL) statements are used to manage the changes made by DML
statements.
It allows statements to be grouped together into logical transactions.
◦COMMIT - save work done
◦SAVEPOINT - identify a point in a transaction to which you can later roll back
◦ROLLBACK - restore database to original since the last COMMIT
◦SET TRANSACTION - Change transaction options like isolation level and what rollback segment
to use
Provide Authorization

GRANT DEBUG ON SCHEMA "HANA_EXPLORER" TO "_SYS_REPO" WITH GRANT OPTION;

Create a table with data from another Schema

CREATE COLUMN TABLE "FACULTYHA02"."TABLE29" LIKE


"ANALYTICS_MODELING_TRAINING"."CHICAGO_POLICE_STATIONS" WITH DATA;

Select from table

SELECT * FROM "FACULTYHA02"."TABLE29";

Delete from table

delete from "FACULTYHA02"."TABLE24";

Change table type from Row to Column

ALTER TABLE "FACULTYHA02"."TABLE29" ALTER TYPE ROW;

Rename table:

RENAME TABLE "HANA_EXPLORER"."SUP_TYPE" TO "SUPPLIER_TYPES";

Rename column:

RENAME COLUMN "HANA_EXPLORER"."PLANT"."PLANT_ID" TO "PLANT";

Create a table using SQL

create column table "FACULTYHA02"."TABLE26"


( "EMPID" NVARCHAR(4) PRIMARY KEY,
"EMPNAME" NVARCHAR(15),
"EMPCITY" NVARCHAR(20));

Insert the data into table


INSERT INTO "FACULTYHA02"."TABLE26" VALUES ('29','Sourav','Kolkatta');
INSERT INTO "FACULTYHA02"."TABLE26" VALUES ('26','Virat','Delhi');

Change data type of a Column

ALTER TABLE "FACULTYHA02"."TABLE26" ALTER ("EMPID" INTEGER);

Create a table with multiple primary key fields

create column table "FACULTYHA02"."TABLE27"


("EMPID" NVARCHAR(4),
"EMPNAME" NVARCHAR(15),
"EMPCITY" NVARCHAR(20),
PRIMARY KEY(EMPID,EMPNAME));
Create a Stored Procedure in CATALOG:

create column table "FACULTYHA02"."TABLE25"


( "EMPID" INTEGER,
"EMPMOBILE" NVARCHAR(10),
"EMPMAIL" NVARCHAR(20));

INSERT INTO "FACULTYHA02"."TABLE25" VALUES ('29','9916928829','sourav@gmail.com');


INSERT INTO "FACULTYHA02"."TABLE25" VALUES ('26','9857725678','virat@yahoo.com');

create column table "FACULTYHA02"."TABLE26"


( "EMPID" INTEGER,
"EMPNAME" NVARCHAR(15),
"EMPCITY" NVARCHAR(20));

INSERT INTO "FACULTYHA02"."TABLE26" VALUES ('29','Sourav','Kolkatta');


INSERT INTO "FACULTYHA02"."TABLE26" VALUES ('26','Virat','Delhi');

create column table "FACULTYHA02"."TABLE24"


( "EMPID" NVARCHAR(4),
"EMPNAME" NVARCHAR(15),
"EMPCITY" NVARCHAR(20),
"EMPMOBILE" NVARCHAR(10),
"EMPMAIL" NVARCHAR(20),
"EDATE" DATE DEFAULT CURRENT_DATE,
"ETIME" TIME DEFAULT CURRENT_TIME);

DROP table "FACULTYHA02"."TABLE24";

CREATE PROCEDURE "FACULTYHA02"."SAMPLEPROC" (IN CITY NVARCHAR(20))


LANGUAGE SQLSCRIPT AS
BEGIN
INSERT INTO "FACULTYHA02"."TABLE24"
SELECT A."EMPID", A."EMPNAME", A."EMPCITY",
B."EMPMOBILE", B."EMPMAIL",CURRENT_DATE,CURRENT_TIME
FROM "FACULTYHA02"."TABLE26" A
INNER JOIN
"FACULTYHA02"."TABLE25" B
ON (A."EMPID" = B."EMPID")
WHERE A."EMPCITY" = :CITY;
END;

CALL "FACULTYHA02"."SAMPLEPROC"('Delhi');

select * from "FACULTYHA02"."TABLE24";

CALL Procedure from CATALOG

CALL "ACC10538268"."ADD_VALUE1" (5,3,?);

CALL Procedure from CONTENT


CALL "_SYS_BIC"."mm29/MM_PROC"('HANA', ?);

Drop Procedure

DROP PROCEDURE "FACULTYHA02"."SAMPLEPROC1";

Identity Column:

CREATE COLUMN TABLE "FACULTYHA02"."TABLE23"


("EMPID" BIGINT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY ,
"EMPNAME" NVARCHAR(30));

INSERT INTO "FACULTYHA02"."TABLE23"("EMPNAME") VALUES ('Sachin');


INSERT INTO "FACULTYHA02"."TABLE23"("EMPNAME") VALUES ('Sourav');
INSERT INTO "FACULTYHA02"."TABLE23"("EMPNAME") VALUES ('Suresh');
INSERT INTO "FACULTYHA02"."TABLE23"("EMPNAME") VALUES ('Sathish');
INSERT INTO "FACULTYHA02"."TABLE23"("EMPNAME") VALUES ('Sanjay');

Sequence getting generated in the background

select column_name, column_id from table_columns where table_name ='TABLE23';

select * from sequences where sequence_name like '%2810152%';

Create a SP in content and consume in it SCV

create column table "FACULTYHA02"."CUSTOMER"


( "CUSTID" NVARCHAR(10) PRIMARY KEY,
"CUSTNAME" NVARCHAR(15),
"PRODUCT" NVARCHAR(20),
"QTY" INTEGER,
"SALESAMT" INTEGER);

insert into "FACULTYHA02"."CUSTOMER" values('CUS101','T&T


Instruments','MAT11',10,2500);
insert into "FACULTYHA02"."CUSTOMER" values('CUS201','P&G texts','MAT21',8,2000);
insert into "FACULTYHA02"."CUSTOMER" values('CUS301','Snap Deals','MAT31',5,1300);
insert into "FACULTYHA02"."CUSTOMER" values('CUS401','Central','MAT41',12,2900);
insert into "FACULTYHA02"."CUSTOMER" values('CUS501','Rig
Products','MAT51',15,3500);

DROP TABLE "FACULTYHA02"."PRODUCT";

create column table "FACULTYHA02"."PRODUCT"


( "PRODUCT" NVARCHAR(20) PRIMARY KEY,CUST
"PRDNAME" NVARCHAR(15),
"PRDTYPE" NVARCHAR(20),
"PLANT" NVARCHAR(4));

insert into "FACULTYHA02"."PRODUCT" values('MAT11','Plugs','HALB','PL01');


insert into "FACULTYHA02"."PRODUCT" values('MAT21','Bolts','HALB','ML01');
insert into "FACULTYHA02"."PRODUCT" values('MAT31','Mobiles','FERT','SL01');
insert into "FACULTYHA02"."PRODUCT" values('MAT41','Jeans','HALB','PL01');
insert into "FACULTYHA02"."PRODUCT" values('MAT51','Trousers','FERT','ML01');

/********* Begin Procedure Script ************/


BEGIN

it_customer = CE_COLUMN_TABLE("FACULTYHA02"."CUSTOMER");

output1 = CE_PROJECTION ( :it_customer,


["CUSTID",
"CUSTNAME",
"PRODUCT",
"QTY" AS "QUANTITY",
"SALESAMT",
CE_CALC('"SALESAMT"*:TAX', DECIMAL(6,2))
AS "TAXED_PRICE"]);

END;
/********* End Procedure Script ************/

CALL "_SYS_BIC"."FACULTYHA02_PACKAGE/SP_TEST2"(5.5, ?)

SCV:

/********* Begin Procedure Script ************/


BEGIN
T_PRODUCTS = CE_COLUMN_TABLE("FACULTYHA02"."PRODUCT");

CALL "_SYS_BIC"."FACULTYHA02_PACKAGE/SP_TEST2"(5.5,it_customer);

it_products = CE_PROJECTION(:T_PRODUCTS,
["PRODUCT",
"PRDNAME" AS "PRODUCT_NAME",
"PLANT"]);

var_out = CE_JOIN ( :it_customer, :it_products,


["PRODUCT"],
["CUSTID",
"CUSTNAME",
"PRODUCT",
"PRODUCT_NAME",
"QUANTITY",
"PLANT",
"SALESAMT",
"TAXED_PRICE"]);

END /********* End Procedure Script ************/

Upsert

CREATE column table "FACULTYHA02"."CUST_PROD"


( "CUSTID" NVARCHAR(10) PRIMARY KEY,
"CUSTNAME" NVARCHAR(15),
"PRODUCT" NVARCHAR(20),
"PRDTYPE" NVARCHAR(20),
"QTY" INTEGER,
"SALESAMT" INTEGER);

CREATE PROCEDURE "FACULTYHA02"."UPSERT_PROC"()


LANGUAGE SQLSCRIPT AS
BEGIN
UPSERT "FACULTYHA02"."CUST_PROD"
SELECT A."CUSTID",A."CUSTNAME", A."PRODUCT", B."PRDTYPE", A."QTY",A."SALESAMT"
FROM "FACULTYHA02"."CUSTOMER" A
INNER JOIN "FACULTYHA02"."PRODUCT" B ON (A."PRODUCT" = B."PRODUCT");
END;

CALL "FACULTYHA02"."UPSERT_PROC"();

SELECT * FROM "FACULTYHA02"."CUST_PROD";

UPDATE "FACULTYHA02"."CUST_PROD" SET "QTY" = 20;

DELETE FROM "FACULTYHA02"."CUST_PROD" WHERE "PRDTYPE" = 'HALB';

*****************************CATALOG**********************************************
CREATE PROCEDURE "NEX22JC"."FOREACH_PROC"(OUT out_tab "NEX22JC"."type_29")
LANGUAGE SQLSCRIPT READS SQL DATA WITH RESULT VIEW ProcView AS
v_cnt integer;
BEGIN
DECLARE v_olfm NVARCHAR(4) := '';
DECLARE v_prio INTEGER;
DECLARE CURSOR c_cursor1 (v_olfm NVARCHAR(4),v_prio INTEGER)
FOR SELECT OLFM_LANGUAGE_CODE,PRIORITY_CODE
from "_SYS_BIC"."DEV_SANDBOX.NEX22JC/ZCA_OLFM_LANG"
group by OLFM_LANGUAGE_CODE,PRIORITY_CODE;

FOR cur_row as c_cursor1(v_olfm,v_prio)


DO
select count(*) into v_cnt from "OLFM_DEV_FA_HANA_TARGET"."FA_ADDITIONS_TL"
where language = cur_row.OLFM_LANGUAGE_CODE;
if v_cnt > 0 then
out_tab = select OLFM_LANGUAGE_CODE as V_LANG,PRIORITY_CODE as V_PRIO
from "_SYS_BIC"."DEV_SANDBOX.NEX22JC/ZCA_OLFM_LANG"
where OLFM_LANGUAGE_CODE = cur_row.OLFM_LANGUAGE_CODE;
else
CONTINUE;
end if;
END FOR;
END;

select * from Procview;


drop procedure "NEX22JC"."FOREACH_PROC";
CALL "NEX22JC"."FOREACH_PROC"(null);

******************************CONTENT***************

/********* Begin Procedure Script ************/


BEGIN
DECLARE v_cnt integer;
DECLARE v_olfm NVARCHAR(4) := '';
DECLARE v_lang NVARCHAR(4);
DECLARE CURSOR c_cursor1 (v_olfm NVARCHAR(4))
FOR SELECT OLFM_LANGUAGE_CODE
from "_SYS_BIC"."DEV_SANDBOX.NEX22JC/ZCA_OLFM_LANG";

FOR cur_row as c_cursor1(v_olfm)


DO
select count(*) into v_cnt from "OLFM_DEV_FA_HANA_TARGET"."FA_ADDITIONS_TL"
where language = cur_row.OLFM_LANGUAGE_CODE;
if v_cnt > 0 then
TT_OUTPUT = select OLFM_LANGUAGE_CODE as OLFM_LANG_CODE,PRIORITY_CODE
from "_SYS_BIC"."DEV_SANDBOX.NEX22JC/ZCA_OLFM_LANG"
where OLFM_LANGUAGE_CODE = cur_row.OLFM_LANGUAGE_CODE;
BREAK;
else
CONTINUE;
end if;
END FOR;
END;
/********* End Procedure Script ************/

*************************************************************************************

Scripted calc view

/********* Begin Procedure Script ************/


resultSetCount integer;

BEGIN
select count(*) into resultSetCount from
"_SYS_BIC"."DEV_SANDBOX.NEX22JC/ZCA_OLFM_LANG";

if :resultSetCount = 1 then

var_out =
select OLFM_LANGUAGE_CODE as OLFM_LANG_CODE,PRIORITY_CODE
from "_SYS_BIC"."DEV_SANDBOX.NEX22JC/ZCA_OLFM_LANG"
group by OLFM_LANGUAGE_CODE,PRIORITY_CODE;

else
if :resultSetCount > 1 then

call "_SYS_BIC"."DEV_SANDBOX.NEX22JC/CSP_FOREACH_RECORD"(var_out);

end if;

end if;

END /********* End Procedure Script ************/

 create global temporary table "SYSTEM"."test_table" (mandt VARCHAR(3),type_id VARCHAR(4));

create procedure "SYSTEM"."DEMO_PROC"(in MANDT VARCHAR(3),

out OUTPUT_TABLE "SYSTEM"."OUTPUT_TABLE" )

language SQLSCRIPT sql security definer as

/*********Begin Procedure Script ************/

BEGIN

truncate table "SYSTEM"."test_table";

insert into "SYSTEM"."test_table" values(:mandt,'Dum1');

insert into "SYSTEM"."test_table" values('002','Dum2');


output_table =

SELECT

mandt,

type_id

FROM "SYSTEM"."test_table"

WHERE mandt = :mandt;

END;

You might also like