SAP HANA存储过程中的游标使用(Cursor)

简介:

-- run 1_datatype_data.sql before running this script

ALTER SESSION SET CURRENT_SCHEMA = SqlScriptDocumentation;

drop procedure cursor_proc; 
CREATE PROCEDURE cursor_proc LANGUAGE SQLSCRIPT AS 
    v_isbn    VARCHAR(20); 
    v_title   VARCHAR(50) := ''; 
    v_price   decimal(5,2) := 0; 
    v_crcy    VARCHAR(3) := 'XXX'; 
    v_msg     VARCHAR(200); 
    CURSOR c_cursor1 (v_isbn VARCHAR(20)) FOR 
        SELECT isbn, title, price, crcy FROM books 
        WHERE isbn = :v_isbn ORDER BY isbn; 
BEGIN 
    init_proc();

    IF c_cursor1%ISOPEN    THEN 
        ins_msg_proc('WRONG: cursor open'); 
    ELSE 
        ins_msg_proc('OK: cursor not open');    
    END IF; 
    
    OPEN c_cursor1('978-3-86894-012-1');

    IF c_cursor1%ISOPEN    THEN 
        ins_msg_proc('OK: cursor open'); 
    ELSE 
        ins_msg_proc('WRONG: cursor not open');    
    END IF;

    FETCH c_cursor1 INTO v_isbn, v_title, v_price, v_crcy; 
    IF c_cursor1%FOUND THEN 
        ins_msg_proc('OK: cursor contains valid data'); 
    ELSE 
        ins_msg_proc('WRONG: cursor contains no valid data'); 
    END IF;

    ins_msg_proc(:v_title || ' identified by isbn ' || :v_isbn || ' costs ' || :v_price || ' ' || :v_crcy);

    FETCH c_cursor1 INTO v_isbn, v_title, v_price, v_crcy; 
    IF c_cursor1%NOTFOUND 
    THEN 
        ins_msg_proc('OK: cursor contains valid data'); 
    ELSE 
        ins_msg_proc('WRONG: cursor contains no valid data'); 
         ins_msg_proc(:v_title || ' identified by isbn ' || :v_isbn || ' costs ' || :v_price || ' ' || :v_crcy); 
    END IF;

    IF c_cursor1%ISOPEN 
    THEN 
        ins_msg_proc('OK: cursor open'); 
    ELSE 
        ins_msg_proc('WRONG: cursor not open');    
    END IF; 
    CLOSE c_cursor1; 
    IF c_cursor1%ISOPEN 
    THEN 
        ins_msg_proc('WRONG: cursor open'); 
    ELSE 
        ins_msg_proc('OK: cursor not open');    
    END IF; 
END;

call cursor_proc(); 
select message from message_box;

-------------------------

DROP PROCEDURE foreach_proc; 
CREATE PROCEDURE foreach_proc() LANGUAGE SQLSCRIPT AS 
    v_isbn    VARCHAR(20) := ''; 
    CURSOR c_cursor1 (v_isbn VARCHAR(20)) FOR 
       SELECT isbn, title, price, crcy FROM books 
       ORDER BY isbn; 
-- (see Bug 9197)  WHERE isbn = :v_isbn 
BEGIN 
    init_proc(); 
    FOR cur_row as c_cursor1('978-3-86894-012-1') DO 
        ins_msg_proc('book title is: ' || cur_row.title); 
    END FOR; 
END;

call foreach_proc(); 
select message from message_box;

专注于企业信息化,最近对股票数据分析较为感兴趣,可免费分享股票个股主力资金实时变化趋势分析工具,股票交流QQ群:457394862
分类:  SAP HANA

本文转自沧海-重庆博客园博客,原文链接:http://www.cnblogs.com/omygod/archive/2013/04/25/3043786.html,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
开发者 数据处理 数据管理
SAP HANA 的不同类型
SAP HANA 的不同类型
SAP HANA 的不同类型
|
4月前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
4月前
|
Linux 开发工具 开发者
关于 SAP HANA 开发那些事
关于 SAP HANA 开发那些事
|
4月前
|
数据库 存储 监控
什么是 SAP HANA 内存数据库 的 Delta Storage
什么是 SAP HANA 内存数据库 的 Delta Storage
什么是 SAP HANA 内存数据库 的 Delta Storage
|
4月前
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
43 1
|
3月前
|
存储 SQL 关系型数据库
MySQL存储过程_触发器_游标——Baidu Comate
MySQL存储过程_触发器_游标——Baidu Comate
28 0
|
4月前
|
数据库
什么是 SAP S/4HANA 的 Brown Field 迁移和 Green Field 迁移
什么是 SAP S/4HANA 的 Brown Field 迁移和 Green Field 迁移
|
3月前
|
存储 关系型数据库 MySQL
MySQL数据库——存储过程-游标(介绍-声明游标、打开游标、获取游标记录、关闭游标,案例)
MySQL数据库——存储过程-游标(介绍-声明游标、打开游标、获取游标记录、关闭游标,案例)
58 0
|
3月前
|
存储 关系型数据库 MySQL
mysql 存储过程游标 循环输出select 查询结果
mysql 存储过程游标 循环输出select 查询结果
42 0
|
4月前
|
数据库 存储 安全
使用 SAP HANA Cloud 的一些优势
使用 SAP HANA Cloud 的一些优势
使用 SAP HANA Cloud 的一些优势