MariaDB - CREATE FUNCTION - Error

 
Vista:
Imágen de perfil de Eduardo
Val: 1
Ha mantenido su posición en MariaDB (en relación al último mes)
Gráfica de MariaDB

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:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder