0

私はこのストアドプロシージャを持っています:

    DELIMITER //
DROP PROCEDURE IF EXISTS cursor_example//
CREATE PROCEDURE cursor_example()
BEGIN
    DECLARE niche_id INT;
    DECLARE niche_name VARCHAR(100);

    DECLARE curl CURSOR FOR SELECT * FROM `niche`;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

    OPEN curl;
      my_loop:LOOP
        FETCH curl INTO niche_id,niche_name;
        IF done=1 THEN
           LEAVE my_loop;
        END IF;      
      END LOOP my_loop;
    CLOSE curl;
END//

DELIMITER ;

curl が取得したものをすべて出力したい。だから私は SELECT ステートメントをループの内側または外側に置くことを考えました..しかし、それは私が望む結果を与えません。そのカーソルからすべてのSQL結果を取得するにはどうすればよいですか。

また、他の単純なバインドされていない SELECT ステートメントと比較して、カーソルを使用する利点は何ですか。つまり、カーソル コードをすべて書かずに select ステートメントを使用するだけで、必要な結果を得ることができたということですか?

4

0 に答える 0