SQL for Reality > SQL Statements Supported by Reality > CREATE PROCEDURE Statement

Comment on this topic

Documentation Comments

Use this form to comment on this topic. You can also provide any general observations about the Online Documentation, or request that additional information be added in a future release.

Reality V15.0 ()

CREATE PROCEDURE Statement (SQL) (m691508+createproc.htm)

To

Reality

Version

Topic

Submitted by

Company

Location

Email address

Comment

 

 

CREATE PROCEDURE Statement

Creates a new stored procedure.

Syntax

CREATE [PROC || PROCEDURE] procname( {argdef{,argdef{...}}} ) {RETURNS datatype} AS statement

Syntax Elements

procname
The name of the procedure. A standard SQL identifier following the same rules as Table and Column names.

argdef =
argname datatype {=defaultvalue} {iotype}

argname
A argument name. This must obey the same rules as Table and Column names, except that it must start with an @ character.

defaultvalue =
The value used if none is specified in the procedure call.

iotype =
INPUT || OUTPUT || INOUT

Defines whether the argument is input only, output only or both. The default is INOUT.

datatype
Any supported SQL data type.

statement
Any supported SQL statement. Normally, a stored procedure will be defined as a BEGIN/END block containing multiple statements.

Comments

The following SQL statements are only valid in the statement section of a CREATE PROCEDURE statement:

BEGIN/END
BREAK
CONTINUE
DECLARE
IF/ELSE
RETURN
SET
WHILE

See SQL Stored Procedures for details of how to write and use SQL procedures.

Examples

CREATE PROC EX1 AS
BEGIN
-- currency conversion table
CREATE TABLE CONV (CID VARCHAR(5) PRIMARY KEY, RATE DECIMAL(5,2), CNAME VARCHAR(5))
-- test data table
CREATE TABLE TESTDATA (ID SMALLINT PRIMARY KEY, AMT DECIMAL(6,2))
END

Creates a procedure called EX1 that creates two tables.

CREATE PROC EX5(@MIN DECIMAL(6,2) OUT, @MAX DECIMAL(6,2) OUT, @AVG DECIMAL(6,2) OUT) AS
SELECT @MIN=MIN(AMT), @MAX=MAX(AMT), @AVG=AVG(AMT) FROM TESTDATA

Creates a procedure called EX5 that selects the minimum, maximum and average values from the AMT column of the TESTDATA table. The results are returned in the @MIN, @MAX and @AVG arguments.

CREATE PROC EX7(@TYPE INTEGER IN) RETURNS DECIMAL(6,2) AS
BEGIN
DECLARE @V DECIMAL(6,2)
IF @TYPE=1
SET @V = (SELECT MIN(AMT) FROM TESTDATA)
ELSE IF @TYPE=2
SET @V = (SELECT MAX(AMT) FROM TESTDATA)
ELSE
SET @V = (SELECT AVG(AMT) FROM TESTDATA)
RETURN @V
END

Creates a procedure called EX7 that returns the minimum, maximum or average value from the AMT column of the TESTDATA table, depending on the value of the @TYPE parameter.

See Also

DROP PROCEDURE statement, CALL statement.

RealityV15.0Comment on this topic