请问mysql存储过程中多个动态sql语句该怎么写,第二个动态语句要用第一个动态语句的值 该怎么调用?

 我来答
小新and
2011-09-29
知道答主
回答量:6
采纳率:0%
帮助的人:14.4万
展开全部
同样的方法 排列下来,主要是前面的动态语句你最好把执行结果放入到一个表里面 类似insert select的方法 然后把set a:=select s from xx; 这样 你就可以取到上个值啦 然后你再去用就没有问题啦 一步一调试 方便容易找到错误的点
匿名_热心网友
推荐于2016-11-01 · TA获得超过719个赞
知道大有可为答主
回答量:3827
采纳率:0%
帮助的人:8338万
展开全部
declare @d1 datetime
set @d1 = '2009-12-31'
select dateadd(year,-1,@d1) as 上一年同一天的日期
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yxj1124
2011-09-21 · 超过32用户采纳过TA的回答
知道答主
回答量:121
采纳率:0%
帮助的人:85.1万
展开全部
给你个参考,试试吧
set @sql_1 = " select * from .......limit ? ";
prepare stmt from @sql_1;
execute stmt using @step; ##你传递的参数,多个参数一块加上
deallocate prepare stmt;
commit;
更多追问追答
追问
第二个动态语句要用第一个动态语句的值
追答
给你个参考,试试吧
set @sql_1 = " select * from .......limit ? ";
prepare stmt from @sql_1;
execute stmt using @step; ##你传递的参数,多个参数一块加上
deallocate prepare stmt;
commit;

追问第二个动态语句要用第一个动态语句的值
先把第一个动态语句的值赋予一个变量,之后再传给第二个动态语句啊
上面例子中@step,就是一个变量,
你可以根据需要,多加基层循环或判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
康运浩VD
2011-09-22 · TA获得超过312个赞
知道小有建树答主
回答量:762
采纳率:100%
帮助的人:460万
展开全部
SQL> DECLARE
2 TYPE refcursor IS REF CURSOR;
3 v_cursor REFCURSOR;
4 v_Sql VARCHAR(200);
5 v_name VARCHAR(10);
6 BEGIN
7 -- 动态SQL
8 v_Sql := 'SELECT name FROM test_dysql';
9 -- 打开游标.
10 OPEN v_cursor FOR v_SQL;
11 -- 循环处理.
12 LOOP
13 -- 填充数据.
14 FETCH v_cursor INTO v_name;
15 -- 无数据时 退出循环.
16 EXIT WHEN v_cursor%NOTFOUND;
17 -- 输出.
18 dbms_output.put_line(v_name);
19 END LOOP;
20 -- 关闭游标.
21 CLOSE v_cursor;
22 EXCEPTION
23 WHEN OTHERS THEN
24 -- 发生异常时,如果游标还打开,那么关闭掉.
25 IF (v_cursor%isopen) THEN
26 CLOSE v_cursor;
27 END IF;
28 RAISE;
29 END;
30 /
A
B
C
D
E
PL/SQL procedure successfully completed.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式