miércoles, 17 de junio de 2009

PROCEDIMIENTO EN ORACLE PARA INSERTAR DATOS

create or replace
PROCEDURE INSERTAR_PROD(Idproducto in NCHAR,IDMARCA in NCHAR,NOMBRE_PROD in VARCHAR2,FECHA_ING in DATE,UNI_DIS IN NUMBER,STOCK IN NUMBER,GARANTIA IN NCHAR) AS
BEGIN
INSERT into productos values(Idproducto,IDMARCA,NOMBRE_PROD,FECHA_ING,UNI_DIS,STOCK,GARANTIA);
END insertar_PROD;

ASI VAMOS A LLAMARLO

CALL insertar_prod('00001','00002','CALCETINES','05-01-2009',75,10,'S');

8 comentarios:

  1. Buenas, sabes que intento lo mismo pero con otros datos (los de mi proyecto), pero me manda un error en la fecha "literal does not match format string".. como lo puedo solucionar? :(

    ResponderEliminar
    Respuestas
    1. en el CALL o EXECUTE insertar_prod(...,to_date('dd/mm/yyyy'),...)

      Eliminar
  2. he intentado lo mismo pero no me funciona

    create or replace procedure Crear_Empleado(rut In Number, nombre In Varchar2, fecha_nac In date, telefono In number,email In varchar2) as

    Begin

    INSERT INTO cliente
    VALUES (rut, nombre, fecha, telefono, email);


    End Crear_Empleado;

    ResponderEliminar
  3. hola hacer uno con una consulta se puede hacer esto

    create or replace
    PROCEDURE verifica_txs (numero_txs in varchar , estado_tx in number , oficina in number )
    is
    begin
    SELECT * FROM journal
    where tx_id = numero_txs and estado_txs = estado_tx and ofi_origen = oficina

    end verifica_txs

    me sale error

    ResponderEliminar
  4. buenos dias como puedo hacer para realizar un procedimiento para realizar un insert en dos tablas al mismo tiempo gracias

    ResponderEliminar
    Respuestas
    1. CREATE OR REPLACE PROCEDURE RESUMEN_VENTAS_PRODUCTO AS
      COMPA NUMBER:=2;
      CLIENTE NUMBER :=3;
      PRODUCTO NUMBER:=4;

      CURSOR C1 IS
      SELECT CIA FROM CIA;

      CURSOR C2 IS
      SELECT ID_CLIENTE FROM CLIENTES
      WHERE CIA = COMPA;

      CURSOR C3 IS
      SELECT B.CIA, B.ID_CLIENTE,B.FECHA, B. TIPO_FACT SUM (C.PRECIO*C.CANTIDAD) MONTO
      ENC_FACTURA B, DETALLE_FACT
      WHERE B.CIA= C.CIA
      AND B.ID_FACT = C.IDFACT
      AND B.CIA = COMPA
      AND B.CLIENTE = CLIENTE
      GROUP BY B.CIA, B.CLIENTE, B.FECHA,B.ID_TIPO_FACT;



      BEGIN

      FOR I IN C1 LOOP
      COMPA:= I.CIA;

      FOR J IN C2 LOOP
      CLIENTE:=J.ID_CLIENTE;

      FOR K IN C3 LOOP
      INSERT INTO RESUMEN_VENTAS VALUES(K.CIA,K.CLIENTE,K.FECHA,K.ID_TIPO_FACT,K.MONTO);
      END LOOP;


      END LOOP;
      END LOOP;
      END RESUMEN_VENTAS_PRODUCTO;

      --este codigo es para hacer una resumen de dos tablas y meterlas en una sola.

      Eliminar
  5. hola para para incertar un dato en call procedure ....
    a los varchar se les pone comillas simples .?
    o solo a los numeros .?

    ResponderEliminar
  6. comilla simple y el procedimiento de arriba esta muy mal hecho

    ResponderEliminar