SQL函数内游标变量声明与执行顺序

 

想做个事,搜索前对变量做个判断处理,而搜索是游标完成的。


SQL函数内游标变量声明与执行顺序_第1张图片

如上绿色注释部分(图片为示意,照抄会有错误。)


无论如何不能编辑成功。



最后找到问题:

IF语句和SET这些,必须在声明之后,也就是我忽略了DECLARE CURSOR,眼神不行!~~~


 

那么问题来了:

这里有个矛盾,我先declare了游标,如果把IF语句放后边,我又怎么定义变量给他用呢?


当时还想到一方法是把DECLARE CURSOR拆开,声明是声明,定义是定义,把那些IF语句放在声明后定义前。不过暂时不用了


直接用游标的特性:


之前知道游标的一个特性就是——OPEN打开之前,游标的那个SELECT是不执行的。


其实游标在OPEN前不光不执行那句select连定义都应该不算完成,在open游标前再定义游标的变量,依然可用。


编辑成功,调用函数成功。。。






知道游标效率不高,为了在SQL函数里边直接拼JSON,就在里边用游标搞循环了



你可能感兴趣的:(SQL函数内游标变量声明与执行顺序)