If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
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
कर लें।
●●●
एक stored procedure में ऐसा logic होता है जो आप लिखते हैं ताकि उस SQL से call कर सकें। एक stored procedure का use ऐसे database operations को perform करने के लिए use किया जाता है , जो same तरह के होते हैं ।
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 काम या ज्यादा हो सकते हैं।
●●●
चलिए अब कुछ 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;
$$;
●●●
किसी 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 मिल जाएगी।
●●●
चलिए अब कुछ example JavaScript में भी देख लेते हैं।
return PI value
create or replace procedure sp_pi()
returns float not null
language javascript
as
$$
return 3.1415926;
$$;
आप अपने 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 करने के लिए कर सकते हैं।
●●●
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'];
●●●
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);
●●●
UDFs & Stored Procedure
दोनों का structure लगभग एक जैसा है हालाँकि इनमे कुछ differences हैं -
Features | UDFs | Stored 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 | ✔ | ✖ |
●●●
Loading ...