Stored Procedures In Snwflake In Hindi | Snwflake Stored Procedures Example

Other Blogs

Image could not load

Image on unsplash

normally किसी table से data fetch करने के लिए हम query run करते हैं , और जितनी बार हम data fetch करते हैं query भी उतनी बार run करनी पड़ती है।

बाकी RDBMS like MySQL , SQL Server , SQL Oracle की तरह ही snowflake में भी Stored Procedures define कर सकते हैं। इसमें हम एक particular query को एक function के रूप में define कर दें और जब जरूरत हो उस function को call कर लें।

What is a Stored Procedure In Snowflake ?

एक stored procedure में ऐसा logic होता है जो आप लिखते हैं ताकि उस SQL से call कर सकें। एक stored procedure का use ऐसे database operations को perform करने के लिए use किया जाता है , जो same तरह के होते हैं ।

Create Procedure Syntax

Snowflake Procedure को define करने का तरीका almost Snowflake UDFs की तरह ही same होता है। हालंकि Procedure और UDFs में काफी difference है जो आगे देखेंगे।

Snowflake में आप SQL , SCALA , JAVA , Python , JavaScript programming languages में भी stored procedures define कर सकते हैं।

normally SQL syntax कुछ इस तरह से होता है।

without parameters

CREATE OR REPLACE PROCEDURE procedure_name()
  RETURNS VARCHAR  -- Return type can be modified as per your requirement
  LANGUAGE SQL  -- Specify the language as SQL
  EXECUTE AS CALLER  -- Execute the procedure with the privileges of the caller
  COMMENT = 'Description of the procedure'  -- Optional comment describing the procedure
AS
$$
-- SQL statements defining the logic of the procedure go here
$$;

with parameters

CREATE OR REPLACE PROCEDURE procedure_name(param1 VARCHAR, param2 INT)
  RETURNS VARCHAR  -- Return type can be modified as per your requirement
  LANGUAGE SQL  -- Specify the language as SQL
AS
$$
-- SQL statements defining the logic of the procedure go here
$$;

अब अगर आपको procedure के अंदर variables define करने हैं तो आप DECLARE statements का use कर सकते हैं।

For Example

CREATE OR REPLACE PROCEDURE procedure_name(param1 VARCHAR, param2 INT)
  RETURNS VARCHAR
  LANGUAGE SQL
AS
$$
-- Declare variables
DECLARE
    var1 INT;
    var2 VARCHAR;
BEGIN
    -- Set values to variables
    var1 := 10;
    var2 := 'Example';

    -- Use variables in SQL statements
END;
$$;

ये normal syntax था , हालाँकि Language के according कुछ options काम या ज्यादा हो सकते हैं।

Snowflake Procedure Example

चलिए अब कुछ simple example देख लेते हैं।

हम एक table employees name की बनाएंगे , जिसमे हम कुछ values को insert करेंगे।

-- create table CREATE TABLE employee ( name VARCHAR(50) );

Create Procedure

CREATE OR REPLACE PROCEDURE insert_employee(name_param VARCHAR) RETURNS VARCHAR LANGUAGE SQL EXECUTE AS CALLER AS $$ BEGIN -- Insert data into the employee table INSERT INTO employee VALUES (name_param); -- Return a success message RETURN 'Data inserted successfully'; END; $$;

Call Procedure

किसी procedure को call करने के लिए CALL procedureName() का use किया जाता है। अगर उसमे कोई parameter pass करना है तो कर सकते हैं।

CALL insert_employee('Babu Rao'); CALL insert_employee('Raju'); CALL insert_employee('Shyam');

अब अगर आप अपनी table में SELECT query run करोगे तो आपको entries मिल जाएगी।

Procedures In JavaScript

चलिए अब कुछ example JavaScript में भी देख लेते हैं।

return PI value

create or replace procedure sp_pi() returns float not null language javascript as $$ return 3.1415926; $$;

Run SQL queries With JavaScript

आप अपने JavaScript procedure के अंदर SQL को execute भी कर सकते हैं। जैसे Insert वाले example को हम JavaScript में भी कर सकते हैं।

CREATE OR REPLACE PROCEDURE insert_employee(name_param VARCHAR) RETURNS VARCHAR LANGUAGE JAVASCRIPT AS $$ // JavaScript code to insert data into the employee table var stmt = snowflake.createStatement({ sqlText: "INSERT INTO employee (name) VALUES (?)", binds: [name_param] }); var resultSet = stmt.execute(); resultSet.next(); return 'Data inserted successfully'; $$;

इसी तरह से आप बाकी programming languages का use procedure को define करने के लिए कर सकते हैं।

List Procedure

SHOW PROCEDURES; command का use करके आपके database में available सभी procedures को list कर सकते हैं।

SHOW PROCEDURES;

इसके अलावा आप filters भी apply कर सकते हैं।

For Example

SHOW PROCEDURES 
[ LIKE '%pattern%']
[ IN ACCOUNT | CLASS 'class_name' | DATABASE | DATABASE 'database_name' | SCHEMA 'schema_name'];

Snowflake Drop Procedure

DROP PROCEDURE command का use करके किसी existing procedure को drop कर सकते हैं।

Syntax :

DROP PROCEDURE [ IF EXISTS ] procedure_name ( [ arg_data_type , ... ] )

ध्यान रहे अगर procedure में parameters define किये हैं तो drop करते time भी procedure में आपको defined parameters का data type भी pass करना पड़ेगा।

DROP PROCEDURE insert_employee(); -- now suppose you have defined varchar parameter. DROP PROCEDURE myProcedure(varchar);

Difference between UDFs & Stored Procedure

UDFs & Stored Procedure दोनों का structure लगभग एक जैसा है हालाँकि इनमे कुछ differences हैं -

FeaturesUDFsStored Procedures

Part of SQL query

Ability of overload

One or more input parameters

Can use JavaScript API

Return value optional

Called Itself recursively

returned value is usable in SQL

UDFs In Snowflake

Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !