CREATE FUNCTION - Error
Publicado por Eduardo (1 intervención) el 28/01/2020 16:44:29
Saludos colegas,
Estoy tratando de crear esta stored function:
Pero cuando hago click en [Guardar] me lanza el error:
Error de SQL (1415) : Not allowed to return a result set from a function.
Alguien que me pueda echar una mano por favor. Mil gracias.
Estoy tratando de crear esta stored function:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
CREATE FUNCTION `Graba_Venta_Cab`(
`cClieDNI` CHAR(11),
`cClieNom` CHAR(60),
`nPlan` DECIMAL(3,0),
`nClieCob` DECIMAL(12,2)
)
RETURNS INT
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE dHoy DATETIME ;
DECLARE cFecha CHAR(8) ;
DECLARE cHora CHAR(8) ;
DECLARE cStamp CHAR(14) ;
DECLARE cPlanTipo CHAR(1) ;
DECLARE nPlanPorc DECIMAL(3,0) ;
DECLARE cDocuNume CHAR(13) ;
DECLARE nDocuNume INT ;
DECLARE nClieCodi INT ;
DECLARE nLastVent INT ;
SELECT dHoy = NOW() ;
SELECT cStamp = DATE_FORMAT( dHoy , '%Y%m%d%H%i%S' ) ;
SELECT cFecha = DATE_FORMAT( dHoy , '%Y%m%d' ) ;
SELECT cHora = DATE_FORMAT( dHoy , '%H:%i:%s' ) ;
SELECT cPlanTipo = ML_TIPO,nPlanPorc = ML_PORC FROM maesplan WHERE ML_CODI = nPlan ;
SELECT cDocuNume = BL_CORR FROM blocks WHERE BL_CODI = 1 ;
SELECT nClieCodi = MC_CODI FROM maesclie WHERE MC_RUC = cClieDNI ;
SET nDocuNume = CAST(cDocuNume AS INTEGER) ;
SET cDocuNume = LPAD( CAST( nDocuNume AS CHAR) , 8 , '0' ) ;
UPDATE blocks SET BL_CORR = cDocuNume WHERE BL_CODI = 1 ;
IF ! (nClieCodi > 0) THEN
INSERT INTO maesclie VALUES( cClieNomb,SPACE(60),cClieDNI,SPACE(60),SPACE(6),SPACE(12),SPACE(12),SPACE(30),SPACE(12),SPACE(50),SPACE(30),SPACE(12),SPACE(50),nClieCob,LEFT(cStamp,8) ) ;
SELECT nClieCodi = LAST_INSERT_ID() ;
END IF ;
CREATE TABLE memo_venta_cab (
memo_stamp CHAR(14) NOT NULL,
memo_corre INT NOT NULL) ENGINE=MEMORY ;
INSERT INTO ventasc values(cFecha,cHora,1,cDocuNume,0,0,0,0,0,0,0,0,1,nPlan,cPlanTipo,nPlanPorc,'SF','SUIZAFARMA',nClieCodi,cClieNom,cClieDNI,nClieCob,0,0,0,0,0,'OK',SPACE(8),SPACE(4),SPACE(30),cStamp) ;
SELECT nLastVent = LAST_INSERT_ID() ;
INSERT INTO MEMO_VENTA_CAB VALUES(cStamp,nLastVent) ;
RETURN nLastVent ;
END
Pero cuando hago click en [Guardar] me lanza el error:
Error de SQL (1415) : Not allowed to return a result set from a function.
Alguien que me pueda echar una mano por favor. Mil gracias.
Valora esta pregunta


0