我正在尝试创建一个函数,该函数接受列,表,限制和偏移量的参数。基本上,我希望能够从指定列的指定表中获取指定数量的行数据。
但是,我无法使用以下代码 - 我收到了一些错误,例如:
syntax error, unexpected SELECT, expecting ':' in: "create function get_banana(lim int, off int, tbl varchar(32), col varchar(32)) r"
syntax error, unexpected RETURN in: "return"
syntax error, unexpected END in: "end"
这些错误似乎毫无意义。
我的代码如下:
CREATE FUNCTION GET_BANANA(lim int, off int, tbl varchar(32), col varchar(32))
RETURNS TABLE (clm int)
BEGIN
PREPARE SELECT col FROM tbl LIMIT ? OFFSET ?;
RETURN EXEC (lim, off);
END;
我很感激任何帮助:)谢谢!
答案 0 :(得分:0)
我至少看到两个问题
1
Jan
Jame
O'Leary
Bill
...
需要EXEC
返回的标识符,例如:
PREPARE
函数参数sql>prepare select * from tables;
execute prepared statement using: EXEC 2(...)
sql>exec 2();
和tbl
是字符串值。您不能将它们用作表/列标识符。
话虽如此,我甚至不确定col
是否可以在函数中使用。
答案 1 :(得分:0)
不,PREPARE是顶级语句修饰符。