====== CREATE PROCEDURE Statement ======
CREATE PROCEDURE statement allows you to create a user-defined SQL procedure (stored procedure).
**Syntax**:
[ALTER | CREATE [OR REPLACE] | REPLACE] PROCEDURE | PROC procedure_name [parameters]
[AS | IS]
body
parameters:
([IN | OUT | INOUT | IN OUT] name data_type, ...)
|
(name [IN | OUT | INOUT | IN OUT] data_type, ...)
body:
statement | expression | BEGIN statements END
**Example**:
Define a procedure and then call passing a parameter:
CREATE PROCEDURE set_message(IN name STRING, OUT result STRING)
BEGIN
SET result = 'Hello, ' || name || '!';
END;
-- Now call the procedure and print the results
DECLARE str STRING;
CALL set_message('world', str);
PRINT str;
Result:
--
Hello, world!
**Compatibility:** Oracle, Teradata, IBM DB2, Microsoft SQL Server, PostgreSQL, MySQL and Netezza
**Version**: PL/HQL 0.3.1
See also:
* [[udf-sproc|User-Defined Functions and Stored Procedures]]
* [[call|CALL]]
* [[create-package|CREATE PACKAGE]]
* [[create-function|CREATE FUNCTION]]
* [[include|INCLUDE]]