Skip to content

Instantly share code, notes, and snippets.

@c7h
Last active December 19, 2015 10:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save c7h/5943777 to your computer and use it in GitHub Desktop.
Save c7h/5943777 to your computer and use it in GitHub Desktop.
different usage of SQL's stored functions and stored procedures
-- schema for exchange:
CREATE TABLE exchange(cur VARCHAR(3), rate DECIMAL(12,3));
INSERT INTO exchange VALUES ("eur", 1.00), ("usd", 1.28), ("czk", 25.98);
-- stored procedure
DELIMITER :-)
CREATE PROCEDURE exrate(IN cur_in DECIMAL(12,3), IN currency VARCHAR(3), OUT cur_out DECIMAL(12,3))
BEGIN
DECLARE course DECIMAL(12,3) DEFAULT 1;
SET course = (SELECT rate FROM exchange WHERE cur = currency);
SET cur_out = cur_in * course;
END:-)
DELIMITER ;
-- usage:
SET @FOO = 0;
CALL exrate(2.30, "usd", @FOO);
SELECT @FOO;
--################
-- stored function
DELIMITER :-)
CREATE FUNCTION exrate2(cur_in DECIMAL(12,3), currency VARCHAR(3)) RETURNS DECIMAL(12,3)
BEGIN
RETURN (SELECT rate FROM exchange WHERE cur = currency) * cur_in;
END:-)
DELIMITER ;
-- usage:
SELECT exrate(2.30, "usd");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment