GBase 8s
适配迁移
问答
sql语法
发表于2024-11-18 13:49:06121次浏览10个评论
在存储过程中,如果一个变量存储了一条sql语句,即let a = “select * from onetable”; 如何执行这条sql语句
评论
登录后才可以发表评论
liaosnet发表于 1年前
execute immediate a;
liaosnet发表于 1年前
@liaosnet:但是需要注意的是,在8s中执行select并不是返回表类数据,如果没有用于接收的变量,将返回错误。
GBase用户24232发表于 1年前
@liaosnet:用了变量,但是它要into temp表,之前用游标的方式,需要一个个指定字段名,但是如果字段是上百个比较多,该如何接收以及展示
liaosnet发表于 1年前
@GBase用户24232:也得一个一个指定字段名。。
GBase用户24232发表于 1年前
@liaosnet:那对于let a = “select * from onetable”;这种sql的执行只能一个一个手动指定字段名吗
liaosnet发表于 1年前
@GBase用户24232:对,现阶段是这样的。。等待实现返回表类型。
GBase用户24232发表于 1年前
@liaosnet:有可能通过集合拿到吗
GBase用户24232发表于 1年前
@liaosnet:报错了:SQL 错误 [ErrorCode : -659] [SQLState : IX000] : SELECT 语句需要 INTO TEMP 表。
我的写法:
DROP PROCEDURE IF EXISTS call_out_param2;
create procedure call_out_param2()
define a NVARCHAR(100);
let a = 'select * from onetable';
execute immediate a;
END PROCEDURE;
call call_out_param2();
我的写法:
DROP PROCEDURE IF EXISTS call_out_param2;
create procedure call_out_param2()
define a NVARCHAR(100);
let a = 'select * from onetable';
execute immediate a;
END PROCEDURE;
call call_out_param2();
路路路发表于 9个月前
如果还有问题可以再发问答贴~
柒柒天晴发表于 2个月前
坐等大佬解析。
热门帖子
- 12025-12-01浏览数:182763
- 22023-05-09浏览数:25057
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17528