GBase 8s
其他
问答
GBase8S 数据库如何执行 返回多条语句的动态sql?
发表于2024-07-30 14:37:41290次浏览12个评论
define v_sql varchar(2000)
let v_sql='select * from 表名'
我定义了这一个变量,如何执行 返回多条语句的动态sql??
execute IMMEDIATE 执行一行的,不适合。
有没有好心人能给一个例子
评论
登录后才可以发表评论
老三发表于 2年前
最佳回答
GBase用户17529发表于 2年前
@老三:感谢三哥的帮助,不过我这边跑起来报错了,但是大概示列内容我大概读懂了,这边sql语句 select tabid,tabname from systables 是提前把要查出来的tabid,tabname定义出来了, 那如果每次都是*呢,语句是select * from 表,列名也不是固定的。那这种的怎么查呀?

GBase用户17529发表于 2年前
@老三:谢谢三哥,但是我这边执行报错了

GBase用户17529发表于 2年前
@老三:谢谢三哥,这个sp我这边运行报错
GBase用户17529发表于 2年前
@GBase用户17529:顺带请教您个问题,这个sp大概意思我看懂了,您提供的demo sql 是 select tabid,tabname from systables,列名提前列出来了,而且还定义了变量来处理, 但如果我的sql 语句是 select * from 表(动态表),列名也不确定的话,这个怎么改?
liaosnet发表于 2年前
@GBase用户17529:gbase模式下,需要显式的列名。
GBase用户17529发表于 2年前
@liaosnet:那我是不是只能用oracle 兼容模式去写了...
GBase用户24232发表于 1年前
@GBase用户17529:你好,最终怎么解决的select *
崔哥发表于 5个月前
侧寒斜雨,微灯薄雾,匆匆过了元宵。帘影护风,盆池见日,青青柳叶柔条。碧草皱裙腰。正昼长烟暖,蜂困莺娇。望处凄迷,半篙绿水浸斜桥。孙郎病酒无聊。记乌丝醉语,碧玉风标。新燕又双,兰心渐吐,嘉期趁取花朝。心事转迢迢。但梦随人远,心与山遥。误了芳音,小窗斜日对芭蕉。
白芷发表于 2个月前
蹲个答案。
GBase用户51848发表于 2个月前
不清楚啊。
GBase用户51820发表于 2个月前
围观了。
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529
define v_sqlstr varchar(250);
define v_tabid integer;
define v_tabname varchar(4096);
let v_sqlstr = "select tabid,tabname from systables where tabid < ?";
prepare stmt from v_sqlstr;
declare v_cursor cursor for stmt;
open v_cursor using id;
while(1 = 1)
fetch v_cursor into v_tabid,v_tabname;
if( SQLCODE != 100) then return v_tabid,v_tabname with resume;
else exit;
end if
end while close v_cursor;
free v_cursor;
free stmt;
end procedure;