在 SPL 例程中的 PREPARE 语句的示例
GBase 8s SPL 语言支持单一语句的准备好的对象。
例如,下列 SQL 和 SPL 语句执行这些任务:
1. 创建 cities 表。 2. 以四行数据填入 cities 表。 3. 创建定义准备好的语句和游标来查询 cities 的 order_city 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




