GBase 8s SPL 语言支持单一语句的准备好的对象。
CREATE TABLE cities -- defines a table ( id INT, city_name CHAR(50) ); INSERT INTO cities VALUES (1, 'Chicago'); INSERT INTO cities VALUES (2, 'New York'); INSERT INTO cities VALUES (3, 'San Francisco'); INSERT INTO cities VALUES (4, 'Atlanta'); UPDATE STATISTICS HIGH; CREATE PROCEDURE order_city() -- defines a UDR RETURNING INT, CHAR(50); DEFINE c_num INT; DEFINE c_name CHAR(50); DEFINE c_query VARCHAR(250); LET c_query = "SELECT id, city_name FROM cities ORDER BY city_name;"; PREPARE c_stmt FROM c_query; DECLARE c_cur CURSOR FOR c_stmt; OPEN c_cur ; while (1 = 1) FETCH c_cur INTO c_num, c_name; IF (SQLCODE != 100) THEN RETURN c_num, c_name WITH RESUME; ELSE EXIT; END IF END WHILE CLOSE c_cur; FREE c_cur; FREE c_stmt; END PROCEDURE;
下列 SQL 语句调用 order_city 例程:
EXECUTE PROCEDURE order_city();
如果从 dbaccess 实用程序调用 order_city 函数,则显示此输出:
(expression) (expression) 4 Atlanta 1 Chicago 2 New York 3 San Francisco