示例:SQL 例程中的锚定位数据类型用法
创建您自己的 SQL 例程时,可参考 SQL 例程中的锚定位数据类型用法示例。
下面的一组示例演示各种功能及 SQL 例程中的锚定位数据类型用法。所演示锚定位数据类型功能比包含它们的 SQL 例程的功能更多。
以下示例演示定位至表中某列的数据类型的已声明变量:
CREATE TABLE tab1(col1 INT, col2 CHAR)@
INSERT INTO tab1 VALUES (1,2)@
INSERT INTO tab1 VALUES (3,4)@
CREATE TABLE tab2 (col1a INT, col2a CHAR)@
CREATE PROCEDURE p1()
BEGIN
DECLARE var1 ANCHOR tab1.col1;
SELECT col1 INTO var1 FROM tab1 WHERE col2 = 2;
INSERT INTO tab2 VALUES (var1, 'a');
END@
CALL p1()@调用过程 p1 时,特定行的列 col1 的值会被选择到相同类型的变量 var1 中。以下 CLP 脚本包括某个函数的示例,其中演示函数参数的锚定位数据类型用法:
-- Create a table with multiple columns
CREATE TABLE tt1 (c1 VARCHAR(18), c2 CHAR(8), c3 INT, c4 FLOAT)
@
INSERT INTO tt1 VALUES ('aaabbb', 'ab', 1, 1.1)
@
INSERT INTO tt1 VALUES ('cccddd', 'cd', 2, 2.2)
@
SELECT c1, c2, c3, c4 FROM tt1
@
-- Creation of the function
CREATE FUNCTION func_a(p1 ANCHOR tt1.c3)
RETURNS INT
BEGIN
RETURN p1 + 1;
END
@
-- Invocation of the function
SELECT c1, c2 FROM tt1 WHERE c3 = func_a(2)
@
-- Another invocation of the function
SELECT c1, c2 FROM tt1 WHERE c3 = func_a(1)
@
DROP FUNCTION func_a
@
DROP TABLE tt1
@调用函数 func_a 时,该函数会使用锚定位数据类型参数的值执行基本操作。