Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2014
DasGrun DasGrun is offline
Miembro
 
Registrado: abr 2008
Posts: 109
Poder: 17
DasGrun Va por buen camino
Como Insertar Datos a una tabla desde Un Sp

Hola,

Necesito que Me Ayuden, se ha hecho un Procedimiento Almacenado donde extrae datos, y algunos datos extraido quisiera insertarlos a continuacion el SP que se Ha Creado.
Código SQL [-]
CREATE PROCEDURE SP_EMP_DEPTO_PRY(
  N_DEPTO SMALLINT DEFAULT NULL,
  N_ID_PROYECTO SMALLINT DEFAULT NULL)
RETURNS(
  ID_EMPLEADO BIGINT,
  EMPLEADO VARCHAR(255) CHARACTER SET ISO8859_1,
  PROYECTO VARCHAR(255) CHARACTER SET ISO8859_1,
  IDENTIDAD VARCHAR(15) CHARACTER SET ISO8859_1,
  PUESTO VARCHAR(255) CHARACTER SET ISO8859_1,
  ID_DEPTO SMALLINT,
  DEPARTAMENTO VARCHAR(255) CHARACTER SET ISO8859_1,
  SALARIO NUMERIC(18, 2))
AS
BEGIN
  /* Procedure body */
  FOR
     SELECT
       EMPLEADOS.ID_EMPLEADO,
       EMPLEADOS.NOMBRE || ' ' || EMPLEADOS.APELLIDO AS EMPLEADO,
       PROYECTO.DESCRIPCION,
       EMPLEADOS.IDENTIDAD,
       PUESTO.DESCRIPCION,
       DEPARTAMENTO.ID_DEPTO,
       DEPARTAMENTO.DESCRIPCION,
       EMPLEADOS.SALARIO
                        FROM
                          EMPLEADOS
      INNER JOIN PUESTO ON (EMPLEADOS.ID_PUESTO = PUESTO.ID_PUESTO)
      INNER JOIN DEPARTAMENTO ON (PUESTO.ID_DEPTO = DEPARTAMENTO.ID_DEPTO)
      INNER JOIN PROYECTO ON (EMPLEADOS.ID_PROYECTO = PROYECTO.ID_PROYECTO)
            WHERE
              DEPARTAMENTO.ID_DEPTO = :N_DEPTO AND
              EMPLEADOS.ID_PROYECTO = :N_ID_PROYECTO
              
     INTO
         :ID_EMPLEADO,
         :EMPLEADO,
         :PROYECTO,
         :IDENTIDAD,
         :PUESTO,
         :ID_DEPTO,
         EPARTAMENTO,
         :SALARIO
     DO
  BEGIN
    EXECUTE PROCEDURE SP_INSERTAR_EMP_PLANILLA(:ID_EMPLEADO, :SALARIO);
   
  END
END;

Me presenta un error al ejecutar este SP que es el Siguiente.

Invalid Token. Invalid resquet BLR at Offset 75. Procedure SP_Emp_Depto_Pry is not selectable(it does not containt a SUSPEND Statement).

Muchas Gracias Por Su Ayuda.
Imágenes Adjuntas
Tipo de Archivo: jpg Imagen.JPG (13,7 KB, 1 visitas)
__________________
Hasta Mis Huesos son Codificados?
Responder Con Cita
  #2  
Antiguo 31-05-2014
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Seguramente estás listando este procedimiento:

Código SQL [-]
select * from PROCEDURE SP_EMP_DEPTO_PRY(:N_DEPTO, :N_ID_PROYECTO)
...

Y debes es ejecutarlo:

Código SQL [-]
EXECUTE PROCEDURE SP_EMP_DEPTO_PRY(:N_DEPTO, :N_ID_PROYECTO)
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 31-05-2014
DasGrun DasGrun is offline
Miembro
 
Registrado: abr 2008
Posts: 109
Poder: 17
DasGrun Va por buen camino
Muchas Gracias por Su repuesta.

Lo Que Hice fue lo Siguiente y me ha funcionado, pero no es lo que necesito hasta el momento porque necesito ingresar otro campo que esta
Código SQL [-]
CREATE PROCEDURE SP_EMP_DEPTO_PRY(
  N_DEPTO SMALLINT DEFAULT NULL,
  N_ID_PROYECTO SMALLINT DEFAULT NULL)
RETURNS(
  ID_EMPLEADO BIGINT,
  SALARIO NUMERIC(18, 2))
AS
BEGIN
  /* Procedure body */
  FOR
     SELECT
       EMPLEADOS.ID_EMPLEADO,
       EMPLEADOS.SALARIO
                        FROM
                          EMPLEADOS
      INNER JOIN PUESTO ON (EMPLEADOS.ID_PUESTO = PUESTO.ID_PUESTO)
      INNER JOIN DEPARTAMENTO ON (PUESTO.ID_DEPTO = DEPARTAMENTO.ID_DEPTO)
      INNER JOIN PROYECTO ON (EMPLEADOS.ID_PROYECTO = PROYECTO.ID_PROYECTO)
            WHERE
              DEPARTAMENTO.ID_DEPTO = :N_DEPTO AND
              EMPLEADOS.ID_PROYECTO = :N_ID_PROYECTO
              
     INTO
         :ID_EMPLEADO,
         :SALARIO
    DO
      INSERT INTO DETALLE_PLANILLA(ID_EMPLEADO, SALARIO)
       VALUES (:ID_EMPLEADO, :SALARIO);
  BEGIN
    SUSPEND;
  END
END;

estoy tratando de insertar otro campo que no esta en est SP...Luego le cuento..

Muchas Gracias.
__________________
Hasta Mis Huesos son Codificados?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar datos en una tabla desde consulta en un SP subzero MS SQL Server 2 05-12-2007 16:18:19
Error de Sintaxis al Insertar datos a una tabla desde otra alastor SQL 9 28-09-2006 18:27:09
insertar datos en una tabla desde fichero XML??? mguixot Conexión con bases de datos 2 17-05-2006 16:18:04
insertar datos en una tabla desde otra Giniromero SQL 5 17-06-2004 19:37:16
Como insertar datos de una tabla en otra tabla? Salomon Firebird e Interbase 1 28-08-2003 11:29:40


La franja horaria es GMT +2. Ahora son las 15:44:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi