• PostgreSQL 游标指定特定列的值赋值给某个变量


    从Fetch cursor_var into var1,var2;

    它是把查询出来的列按顺序赋值过去的,每一个Fetch是一行,每一个into是一列,var1,var2分别对应数据行的第一列和第二列,不需要定义变量的名称和列名一致。

    -- 如果存在该存储过程就删除
    drop function if exists function_test3();
    -- replace之前先调用了drop是因为如果返回值不同是不能直接替换的
    create or replace function function_test3() returns void as
    -- 标记开始和起始位置,用$$和$$也可以,主要是查询存储过程的结果是用的$BODY$
    $BODY$
    declare project_id varchar(24);
    declare project_id1 varchar(24);
    declare emprest CURSOR for select * from saas_bi_basic_project_record;
    num int;
    begin
     select count(*) from saas_bi_basic_project_record into num;
    open emprest;
    LOOP
        FETCH emprest into project_id,project_id1;
        raise notice '%', project_id1;
        num = num - 1;
    if num = 0 then exit; end if;
    END LOOP;
    close emprest;
        END
    $BODY$
    LANGUAGE plpgsql; 
    
    -- 调用存储过程
    select function_test3();
    -- 调用存储过程
    select function_test3()
    > 注意:  ab123
    > 注意:  sdf
    > OK
    > 时间: 0.001s
  • 相关阅读:
    【English】20190522
    06_Intent和IntentFilter
    05_Content Provider
    04_ Broadcast Receiver
    03_Service的绑定
    02_启动和销毁Service
    01_Activity生命周期及传递数据
    Android对应版本号
    如何在word中插入代码
    项目经验总结
  • 原文地址:https://www.cnblogs.com/woyujiezhen/p/13781024.html
Copyright © 2020-2023  润新知