CREATE DATABASE teste;
USE teste;
CREATE TABLE `tbcadastro`
(
`codigo` INT(11) NOT NULL auto_increment,
`descricao` VARCHAR(150) DEFAULT NULL,
`valorvenda` DECIMAL(18, 2) DEFAULT NULL,`ativo` INT(1) DEFAULT '1',
PRIMARY KEY (`codigo`)
);
INSERT INTO `tbcadastro`
(`codigo`,`descricao`,`valorvenda`,`ativo`)
VALUES (1,'Samsung Galaxy S III',1999.00,1);
INSERT INTO `tbcadastro`
(`codigo`,`descricao`,`valorvenda`,`ativo`)
VALUES (2,'Apple IPHONE 5',2199.00,1);
INSERT INTO `tbcadastro`
(`codigo`,`descricao`,`valorvenda`,`ativo`)
VALUES (3,'Samsung Galaxy Tab II',1999.00,1);
INSERT INTO `tbcadastro`
(`codigo`,`descricao`,`valorvenda`,`ativo`)
VALUES (4,'Motorola Xoom',1099.00,1);
INSERT INTO `tbcadastro`
(`codigo`,`descricao`,`valorvenda`,`ativo`)
VALUES (5,'Dell Ultrabook 14´',2499.00,1);
INSERT INTO `tbcadastro`
(`codigo`,`descricao`,`valorvenda`,`ativo`)
VALUES (6,'ASUS Ultrabook 14´',2599.00,1);
INSERT INTO `tbcadastro`
(`codigo`,`descricao`,`valorvenda`,`ativo`)
VALUES (7,'Fragmentadora Clone',1099.00,0);
INSERT INTO `tbcadastro`
(`codigo`,`descricao`,`valorvenda`,`ativo`)
VALUES (8,'Suporte para Notebook',1099.00,1);
DROP PROCEDURE IF EXISTS spcursor;
DELIMITER |;
CREATE PROCEDURE spcursor()
begin
DECLARE fim INT DEFAULT false;
DECLARE produto VARCHAR(150);
DECLARE bloco CURSOR FOR
SELECT descricao
FROM tbcadastro;
DECLARE CONTINUE handler
FOR NOT found
SET fim = TRUE;
CREATE temporary TABLE teste
(
descricao VARCHAR(150)
)
;
open bloco;
READ_LOOP:
LOOP
FETCH bloco INTO produto;
INSERT INTO teste
VALUES (produto);
IF fim THEN
LEAVE read_loop;
end IF;
end LOOP;
close bloco;
SELECT *
FROM teste;
DROP temporary TABLE teste;
end;
|
CALL spcursor();
--
Leia o meu livro sobre T-SQL http://www.erica.com.br/detalhes.asp?cod=4537
Excelente exemplo! Simples e eficaz!
ResponderExcluirVlw!
Excluir