Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - crisoof

#1
Buenas tardes comunidad!,

nuevamente recurro a ustedes al encontrarme en un callejón sin salida, e investigado un monton y no me a resultado nada de lo que he intentado, les comento.

Estoy generando el timbre electronico de una guia de despacho, para esto genero unas instrucciones en cmd.exe, al generalas desde el cmd no tengo problemas, cuando lo hago desde visual studio me genera problemas, no me muestra errores solo indica que el archivo no se encuentra siendo que la instrucción que crea el archivo se ejecuto o al menos no aparecen errores que me indiquen que no se creo el archivo, aunque este no se crea.
He intentado de hacerlo con power shell ise 2.0 pero no tengo forma alguna de ejecutarlo desde visual studio, no tengo idea de como ejecutar el powershell, por temas de elevación de permisos solucione el problema llamando a un powershell normal sin elevación y este ejecuta un nuevo powershell con permisos elevados, si me pueden ayudar con cualquiera de estas 2 formas se los agradecería muchísimo

ya sea ayudarme y quitando la nebulosa de como ejecutar un script power shell desde visual studio 2017 o ayudándome a saber como elevar permisos desde un bat, sin que se tenga que hacer el acceso directo e indicarle al acceso directo que se ejecute en modo administrador.

Muchas gracias por su ayuda de antemano
Saludos
#2
Buenas tardes, intentare de ser lo mas claro posible para que me puedan ayudar.
El lenguaje es Visual Basic

tengo un dgv (datagridview) al cual el usuario realizara una modificacion de una celda en particular ingresando solo numeros, una vez que el usuario termine de realizar la modificacion en la celda toda la fila de este dgv sera agregado a un nuevo Dgv, el tema es que cuando el usuario realiza la modificacion se envia a la nueva grilla pero la celda no esta modificada, he leido bastante y al parecer tengo que controlar el evento cell dirty state change y dar el commit para que los datos en cache sean guardado, el tema es que cuando depuro la aplicacion los datos en la nueva fila se muestran cambiados pero no se ven reflajados en la grilla nueva  adjunto el codigo

' aqui estoy manejando que ingrese a la celda "Porcentaje"
Private Sub DgvTempo_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgvTempo.CellContentClick
        Dim i As Integer
        Dim row As DataGridViewRow = DgvTempo.CurrentRow
        Dim Vusuario, Vestacion As String

        With DgvTempo
            If e.RowIndex >= 0 Then

                i = .CurrentRow.Index

                If e.ColumnIndex = .Rows(i).Cells("Porcentaje").ColumnIndex Then

                    .Rows(i).Cells("Porcentaje").ReadOnly = False
                    CType(.Columns("Porcentaje"), DataGridViewTextBoxColumn).MaxInputLength = 2
                    Vusuario = CLLibreria.VgUsuarioCodigo
                    Vestacion = CLLibreria.VgEstacion
                    DTTemporada.Rows(i)("Usuario") = Vusuario
                    DTTemporada.Rows(i)("Estacion") = Vestacion

                Else
                    .Rows(i).ReadOnly = True
                End If
            End If

        End With
    End Sub

' aqui se supone que el cambio ya fue realizado y debe agregar la fila con los datos ya
' cambiados y agregarlos a la nueva grilla, estoy trabajando con los dataTable de las grillas
Private Sub DgvTempo_CellValidated(sender As Object, e As DataGridViewCellEventArgs) Handles DgvTempo.CellValidated
        Dim i As Integer
        Dim fila As DataRow
        Dim nvalor As Integer
        Dim nvalor2 As String
        Dim Vusuario, Vestacion As String

        nvalor = DgvTempo.CurrentRow.Cells("Porcentaje").Value
        nvalor2 = DTTemporada.Rows(e.RowIndex).Item("Porcentaje").ToString

        'MsgBox(CStr(nvalor) & " / " & nvalor2)

        With DgvTempo
            i = .CurrentRow.Index

            If e.ColumnIndex = .Rows(i).Cells("Porcentaje").ColumnIndex And .Rows(i).Cells("Porcentaje").Value > 0 Then

                fila = DTTemporada.Rows(i)
                fila("Porcentaje") = .CurrentRow.Cells("porcentaje").Value
                DTtempo.ImportRow(fila)
                Vusuario = CLLibreria.VgUsuarioCodigo
                Vestacion = CLLibreria.VgEstacion
                DTtempo.Rows(i)("Usuario") = Vusuario
                DTTemporada.Rows(i)("Estacion") = Vestacion
                DgvTemporada.DataSource = DTtempo

                DgvTemporada.Columns("Id_PreTemp").Visible = False
                DgvTemporada.Columns("Cod_tienda").Visible = False
                DgvTemporada.Columns("Cod_Temporada").Visible = False
                DgvTemporada.Columns("Cod_Marca").Visible = False
                DgvTemporada.Columns("Usuario").Visible = False
                DgvTemporada.Columns("Estacion").Visible = False
                DgvTemporada.AllowUserToAddRows = False
                DgvTemporada.RowHeadersVisible = False
                DTTemporada.Rows.RemoveAt(i)

                If DgvTemporada.Rows.Count > 0 Then

                    If Not VBtnCreado Then

                        CreaBtnEliminar()
                    End If
                End If
            End If
        End With

    End Sub


en la nueva grilla me meustra la fila agregada pero con la columna porcentaje con los valores en 0...

Llevo 2 dias atorado espero alguno me pueda ayudar

Saludos
#3
Buenas tardes amiguetes!!

solicito su ayuda, tengo un error en un procedimiento almacenado en sql server, la falla radica en que no esta entranddo a realizar los insert, realiza los update y delete pero no los insert, porfavor si alguno me puede ayudar se lo agradeceria muchisimo, le he dado muchas vueltas y no tengo solucion

USE [Gestion]
GO
/****** Object:  StoredProcedure [dbo].[GES_Pre_Tienda_Guardar]    Script Date: 6/8/2019 12:10:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Cristofer Martinez
-- Create date: 05-08-2019
-- Description: Guarda GPC, Temporada y el ID log
-- =============================================
ALTER PROCEDURE [dbo].[GES_Pre_Tienda_Guardar]
@Cod_Tienda As Varchar(50),
@Ges_Pre_GPCTienda As Ges_Pre_GPCTienda Readonly,
@Ges_Pre_PorcTemporada As Ges_Pre_PorcTemporada Readonly,
@Status    As Integer OutPut
AS
BEGIN

SET NOCOUNT ON;

Declare @Error VarChar(500)
Declare @Id Varchar(50)
Begin Try
Begin Transaction
If not Exists( Select 1
From Gestion.dbo.Ges_Pre_PresupuestoTiendaGpc gpc With(Nolock)
Inner Join  @Ges_Pre_GPCTienda pre
On gpc.Id_PreTieGpc = pre.Id_PreTieGpc)
Begin
--Insert GPC
print ('insert gpc')
Insert Into Ges_Pre_PresupuestoTiendaGpc
(
Id_PreTieGpc, Cod_Tienda, Cod_Gpc, Presupuesto, Utilizado, Stock, Usuario, Fecha_Creacion, Estacion
)
Select gpc.Id_PreTieGpc, gpc.Cod_Tienda, gpc.Cod_Gpc, gpc.Presupuesto,0, gpc.Stock, gpc.Usuario,getdate(), gpc.Estacion
From @Ges_Pre_GPCTienda gpc
Where gpc.nuevo = 'S'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR
End
Else
Begin
--- Actualiza GPC
print('Update GPC')
UPDATE Ges_Pre_PresupuestoTiendaGpc
SET stock = gpc.Stock, Presupuesto = gpc.Presupuesto,
Fecha_Creacion = GETDATE(), Usuario = gpc.Usuario, Estacion = gpc.Estacion
FROM Ges_Pre_PresupuestoTiendaGpc c
INNER JOIN @Ges_Pre_GPCTienda gpc
ON c.Id_PreTieGpc = gpc.Id_PreTieGpc
Where gpc.nuevo = 'N'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR

End

If Not Exists( Select tem.Id_PreTemp
From Gestion.dbo.Ges_Pre_PorcentajeTemporada tem With(Nolock)
Inner Join  @Ges_Pre_PorcTemporada pre
On tem.Id_PreTemp = pre.Id_PreTemp)
Begin
---Insert temporada
print ('Insert temporada')
Insert into Gestion.dbo.Ges_Pre_PorcentajeTemporada
(
Id_PreTemp, Cod_Tienda,Cod_PreTemporada, Cod_PreAnual, Cod_Temporada, Porcentaje, Usuario, Fecha_Creacion, Estacion
)

Select Id_PreTemp, Cod_tienda, Cod_Pretemporada, Cod_PreAnual, Cod_Temporada, Descuento,  Usuario, GETDATE(), Estacion
From @Ges_Pre_PorcTemporada
Where Nuevo = 'S'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End
End
Else
Begin
--- Borra temporada
print ('delete temporada')
Delete temp
From Gestion.dbo.Ges_Pre_PorcentajeTemporada temp
Left join @Ges_Pre_PorcTemporada pre
On temp.Id_PreTemp = pre.Id_PreTemp
Where pre.Id_PreTemp = null
And pre.Nuevo = 'N'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR

--- actualiza temporada
Print('Update Temporada')
Update temp
Set Porcentaje = pre.Descuento
From Gestion.dbo.Ges_Pre_PorcentajeTemporada Temp
Inner join @Ges_Pre_PorcTemporada pre
On Temp.Id_PreTemp = pre.Id_PreTemp
Where pre.Nuevo = 'N'

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR

End
Print ('Insert ID')
--Insert Validacion Usuario
Insert into Ges_pre_log (Cod_tienda)
Values
(
@Cod_Tienda
)

If @@ERROR <> 0
Begin
Set @Status = 0
Rollback Tran
Return @Status
End

Commit Transaction
SET @Status = 1
SET @Error = 'OK'
SELECT @Error AS ERROR
RETURN @Status
End Try
Begin Catch
If @@TRANCOUNT > 0
Begin
SELECT ERROR_MESSAGE() AS ErrorMessage;
Rollback Transaction
Set @Status = 0
Set @Error = 'try'
--Print  @@Error
Select @Error AS ERROR
Return @Status
END
Else
Begin
SELECT ERROR_MESSAGE() AS ErrorMessage;
Set @Status = 0
Set @Error = 'try'
--Print  @@Error
Select @Error AS ERROR
Return @Status
End
End Catch   
END



Muchas gracias por su ayuda
#4
Buenas tardes.

Tengo la siguiente duda, quizas sea muy facil estoy un poco bloqueado,

tengo una tabla
Tabla 1
Registro1,
Registro2,
Registro 3
Registro4



y por otro lado tengo un otra tabla que tiene un parametro que me indica que debo usar los 4 registros de la tabla 1

Tabla 2

1,1,1,Registro 1,1,
2,1,1, Registro 2,1,
3,1,1, Todos, 1


cuando tenga el registro Todos, debería crear 4 filas y hacer esto


1,1,1,Registro 1,1,
2,1,1, Registro 2,1,
3,1,1, Registro1,1,
3,1,1, Registro2,1,
3,1,1, Registro3,1,
3,1,1, Registro4,1


Como la tabla 1 tiene pocos registros se que puedo usar un case y decirle que haga el insert normal pero cuando encuentre el Todos cree los 4 registros manuales, pero mi idea es saber como hacerlo mas automatizado para cuando me tope con una tabla mas grande no tener que hacer los insert manuales


Saludos gracias por su ayuda, espero haber sido claro
#5
Foro Libre / Bitcoin
14 Noviembre 2017, 16:13 PM
Buenos dias o tardes,
Dependiendo de que parte del globo me leen, me gustaría pedirles ayuda quiero incursionar en el mundo del bitcoin, estoy googleando y buscando información para entender lo necesario, por que les pido ayuda a ud, porque seguramente sabrán algo que me costara un poco de tiempo aprender, quizás algún consejo, ayuda para minar desde nube, es lo que mas me interesa, si alguno me puede hechar una mano con información para poder leer sobre esto, se los agradecería

Saludos  ;-)
#6
Java / menu con errores
24 Agosto 2017, 21:40 PM
Estimados, muchas gracias de antemano los que se interesen en ayudar o tratar de ayudarme, les axplico:

Tengo este menu para ir pidiendo por teclado los datos al usuario, el menu avanza de forma automatica, luego en el ultimo casele pregunta al usuario si es que quiere ingresar un nuevo objeto o no, en cada caso a i le asigna un valor, cuando indicaba Y le asigna 0 para que al terminar sumara 1 mas y entrara nuevamente al case 1 y pregutara nuevamente los datos, el tema es que nunca entraba al case 1 empezaba desde el case 2, trate colocandole hasa un -1 al i aun asi siempre empezaba desde el case 2, bueno modificando esto ahora entro en un loop infinito, y no sale de la pregunta
Código (java) [Seleccionar]
System.out.println("¿Desea agregar un nuevo producto?, indicar \"Y\" para si o \"N\" para no: "); , si alguno me pudiera ayudar se los agradeceria mucho saludos
PD. tengo uno que otro system basura cuando estaba tratando de trazar donde estab el error
Código (java) [Seleccionar]
package javaproducto;
import java.util.*;
/**
*
* @author Crisoof
*/
public class Main {
   
    public static void main(String []arg){

        Producto Lechemala = new Producto();
        Producto LecheVacia = new Producto();
        Nodo<Producto> Indice = new Nodo(Lechemala);
        Nodo<Producto> NodoNext = new Nodo();
        ListaEnlazada<Producto> sistema = new ListaEnlazada<>();       
        Scanner leer = new Scanner(System.in);
        boolean flag = false ;
        boolean flag_in ;
        String codigo = null;
        String descrip = null;
        double precioUni = 0;
        int stock = 0;
        int stockCrit = 0;
        String opcion ;
               
        System.out.println("Estimad@ necesitamos agregar productos al sistema,favor ingresar la "
                + "informacion que se pedira a continuacion");           
        for(int i = 1;i <= 7;i++){           

            switch(i){                                       
                case 1:
                    flag = false;
                    while(!flag){
                    System.out.println("Ingrese el codigo del producto (Max. 10 caracteres): ");                               
                    codigo = leer.nextLine();                   
                        if(codigo.length() <= 10){
                            System.err.println("test codigo: "+codigo);
                            flag = true;
                        }else{
                    System.err.println("Error. Favor ingresar Maximo 10 caracteres: ");       
                            flag = false;
                        }
                    }                   
                    break;
                case 2:

                    System.out.println("Indicar descripcion del producto: ");
                    descrip = leer.nextLine();

                    break;
                case 3:
                   
                    flag_in = false;
                    while(!flag_in){
                        try{
                            System.out.println("Indicar precio unitario del producto: ");               
                            precioUni = leer.nextDouble();
                            flag_in = true;                                           
                        }catch(InputMismatchException ex){
                            System.err.println("Favor indicar solo numeros para el precio unitario del producto. ");                   
                            leer.nextLine();
                        }
                    }
                    break;
                case 4:
                   
                    flag_in = false;
                while(!flag_in){
                    try{
                        System.out.println("Indicar el stock del producto: ");               
                        stock = leer.nextInt();
                        flag_in = true;

                    }catch(InputMismatchException ex){
                        System.err.println("Favor indicar solo numeros enteros para el stock del producto. ");                   
                        leer.nextLine();
                    }
                }                       
                    break;
                case 5:
                    flag_in = false;
                while(!flag_in){
                    try{
                        System.out.println("Indicar el stock critico del producto: ");
                        stockCrit = leer.nextInt();
                        flag_in = true;
                       
                    Lechemala.setCodigo(codigo);
                    Lechemala.setDescripcion(descrip);
                    Lechemala.setPrecioUni(precioUni);
                    Lechemala.setStock(stock);
                    Lechemala.setStockCritico(stockCrit);
                   
                    sistema.insertarPrimero(Lechemala);
                    }catch(InputMismatchException e){
                        System.err.println("Favor indicar solo numeros enteros para el stock critico del producto. ");                   
                        leer.nextLine();
                    }
                }
                    break;
                case 6:
                    flag_in = false;
                    while(!flag_in){
                        try{

                            System.out.println("¿Desea agregar un nuevo producto?, indicar \"Y\" para si o \"N\" para no: ");                   
                                opcion = leer.next();
                                if (opcion.equals("Y") || opcion.equals("y")){
                                    System.out.println("entre a la opcion Y");
                                    flag_in = true;
                                    i = 0 ;
                                    System.out.println("i tiene este valor ahora"+i);

                                }else if (opcion.equals("N") || opcion.equals("n")){
                                    System.out.println("entre a la opcion N");
                                    flag_in = true ;
                                    i = 8;
                                    System.out.println("i tiene este valor ahora"+i);

                                }else
                            System.err.println("Favor ingresar solo \"Y\" para si o \"N\" para no. ");                           
                                flag_in = false;                       
                        }catch(InputMismatchException e){
                            System.err.println("Favor indicar solo Y o N (minusculas o mayusculas). ");                   
                            leer.next();
                        }
                    }
                    break;
            }   
        }

            for(int i =sistema.cuantosElementos();0<sistema.cuantosElementos();i--){
            System.out.println("Producto en posicion :"+i);   
            System.out.println(sistema.devolverDato(i).ToString());
            }
    }
       
}
#7
Scripting / pequeño script de automatizacion
23 Noviembre 2016, 19:20 PM
Buenas tardes

quisiera si alguno tiene un tiempecillo me pudiera ayudar con un tips para hacer un pequeño script, les explico...

estoy jugando un jueguito de steam, este juego esta en fase Alpha y  por lo tanto tiene errores el tema es que cuando ejecuto el juego antes de ingresar a jugar, pero con el ejecutable ya ejecutado debo eliminar unos archivos, esto lo tengo que hacer cada vez que abro el juego, quiero automatizar esta tarea, mis dudas son las siguientes

si dejo el batch corriendo cada 2 segundos en el interior un if que pregunte por la ejecución del juego y elimine ahi los archivos, seria muy costoso en cuanto a recursos?,

la referencia del ejecutable del juego para preguntar en el if como la deberia buscar?

ejemplo pait.exe? esto ya seria la referencia a la ejecución del programa paint? o solo al archivo ejecutable de paint?

muchas gracias por su tiempo
#8
Buenos dias,
tengo una duda sobre la ejecucion de una sentencia mediante un execute immediate en oracle

adjunto codigo


declaRE
VAR VARCHAR2(100);
ULT_SEQ NUMBER;

BEGIN
VAR:=
'SELECT GENERAL.GOREMAL_SURROGATE_ID_SEQUENCE.NEXTVAL INTO ULT_SEQ FROM DUAL';
DBMS_OUTPUT.PUT_LINE(VAR);
--EXECUTE IMMEDIATE (VAR);
DBMS_OUTPUT.PUT_LINE(ULT_SEQ);
END;

ORA-00905: falta una palabra clave
ORA-06512: en línea 9


La sentencia contenida en el VAR si la ejecuto a mano no tiene problemas, el tema es que si la ejecuto con un execute immediate me da un error, indicado en el codigo, me imagino tendra algo que ver con que se genera el almacenamiento en la variable ULT_SEQ, alguna idea de como puedo lograr algo parecido a lo que deseo, ejecutar la sentencia select y almacenar el resultado en una variable?, esto se debe ejecutar necesariamente con un execute immediate ya que es una consulta dinamica, este bloque lo cree para simplificar la consulta, espero me puedan ayudar

Saludos
#9
Bases de Datos / ayuda con error de sintaxis
6 Abril 2016, 16:01 PM
Hola buenos dias, les agradeceria si me pueden ayudar estoy un poco colapsado y quizas no veo el error, espero me puedan ayudar


CREATE OR REPLACE PROCEDURE SP_SEQ_TEST
AS

NOM_SEQ  VARCHAR2(100);
ULT_SEQ  NUMBER;
VAL_SEQ  NUMBER;
NEXT_SEQ NUMBER;
VAR_EXEC VARCHAR2(200);


CURSOR C_SEQ IS
    SELECT seQuence_name, LAST_NUMBER   
      from all_sequenceS
     where sequence_name like '%SPRIDEN_SURROGATE%'
        or sequence_name like '%GTVZIPC_SURROGATE%'
        or sequence_name like '%STVCNTY_SURROGATE%'
        or sequence_name like '%SPRADDR_SURROGATE%'
        or sequence_name like '%SPRTELE_SURROGATE%'
        or sequence_name like '%SPBPERS_SURROGATE%'
        or sequence_name like '%GOREMAL_SURROGATE%'
        or sequence_name like '%SPREMRG_SURROGATE%'
        or sequence_name like '%GOBINTL_SURROGATE%'
        or sequence_name like '%SPRMEDI_SURROGATE%'
        or sequence_name like '%SPRHOLD_SURROGATE%'
        or sequence_name like '%SORFOLK_SURROGATE%'
        or sequence_name like '%SGBSTDN_SURROGATE%'
        or sequence_name like '%SGRSATT_SURROGATE%'
        or sequence_name like '%SGRSCMT_SURROGATE%'
        or sequence_name like '%SGRCHRT_SURROGATE%'
        or sequence_name like '%SIBINST_SURROGATE%'
        or sequence_name like '%SGRADVR_SURROGATE%'
        or sequence_name like '%SHRTTRM_SURROGATE%'
        or sequence_name like '%SHRTCKN_SURROGATE%'
        or sequence_name like '%SHRTCKG_SURROGATE%'
        or sequence_name like '%SHRTCKL_SURROGATE%'
        or sequence_name like '%SARADAP_SURROGATE%'
        or sequence_name like '%SARAPPD_SURROGATE%'
        or sequence_name like '%SORHSCH_SURROGATE%'
        or sequence_name like '%SYRCRMI_SURROGATE%'
        or sequence_name like '%TBRACCD_SURROGATE%'
        or sequence_name like '%STVSBGI_SURROGATE%'
        or sequence_name like '%SORBTAG_SURROGATE%'
        or sequence_name like '%SORBTAL_SURROGATE%'
        or sequence_name like '%SHRTGRD_SURROGATE%'
        or sequence_name like '%SHBTATC_SURROGATE%'
        or sequence_name like '%SHRTATC_SURROGATE%'
        or sequence_name like '%SORBDMO_SURROGATE%'
        or sequence_name like '%SOBSBGI_SURROGATE%'
        or sequence_name like '%STVBCHR_SURROGATE%'
        or sequence_name like '%SORBCHR_SURROGATE%'
        or sequence_name like '%SORBCMT_SURROGATE%'
        or sequence_name like '%SORTEST_SURROGATE%'
        or sequence_name like '%STVCIPC_SURROGATE%'
        or sequence_name like '%STVTESC_SURROGATE%'
        or sequence_name like '%STVTSRC_SURROGATE%'
        or sequence_name like '%SSBSECT_SURROGATE%'
        or sequence_name like '%SSRLINK_SURROGATE%'
        or sequence_name like '%SSBXLST_SURROGATE%'
        or sequence_name like '%SSRXLST_SURROGATE%'
        or sequence_name like '%SSRMEET_SURROGATE%'
        or sequence_name like '%SIRASGN_SURROGATE%'
        or sequence_name like '%SFBETRM_SURROGATE%'
        or sequence_name like '%SFRSTCR_SURROGATE%'
        or sequence_name like '%SGRSATT_SURROGATE%'
        or sequence_name like '%TBRMEMO_SURROGATE%'
        or sequence_name like '%SARCHKL_SURROGATE%'
        or sequence_name like '%SPRHOLD_SURROGATE%'
        or sequence_name like '%SGRSCMT_SURROGATE%'
        or sequence_name like '%SHRMRKS_SURROGATE%'
        or sequence_name like '%SHRMRKA_SURROGATE%'
        or sequence_name like '%SMBSLIB_SURROGATE%'
        or sequence_name like '%SMRSWAV_SURROGATE%'
        or sequence_name like '%SMRSWPV_SURROGATE%'
        or sequence_name like '%SHRDGMR_SURROGATE%'
       and sequence_owner ='SATURN';
       
       V_CUR C_SEQ%ROWTYPE;
BEGIN
       
      OPEN C_SEQ;
      LOOP
     
      FETCH C_SEQ INTO V_CUR;
      EXIT WHEN C_SEQ%NOTFOUND;
           
            VAR_EXEC:= 'SELECT SATURN.'||V_CUR.SEQUENCE_NAME||'.NEXTVAL INTO '||ULT_SEQ||' FROM DUAL';
            EXECUTE IMMEDIATE (VAR_EXEC) ; -- esta es la linea 87
           
            VAL_SEQ := V_CUR.LAST_NUMBER - ULT_SEQ;
           
            IF VAL_SEQ > 0 THEN
           
            VAR_EXEC :='ALTER SEQUENCE SATURN.'||V_CUR.SEQUENCE_NAME
            ||' INCREMENT BY '||VAL_SEQ;
           
            EXECUTE IMMEDIATE (VAR_EXEC);
           
            VAR_EXEC := 'SELECT SATURN.'||V_CUR.SEQUENCE_NAME||'.NEXTVAL FROM DUAL';
           
            EXECUTE IMMEDIATE (VAR_EXEC);
           
            VAR_EXEC :='ALTER SEQUENCE SATURN.'||V_CUR.SEQUENCE_NAME
            ||' INCREMENTE BY 1';
           
            EXECUTE IMMEDIATE (VAR_EXEC);
     
            END IF;
                 
      END LOOP;
      CLOSE C_SEQ; 
END; 


ORA-00936: falta una expresión
ORA-06512: en "BANINST1.SP_SEQ_TEST", línea 87
ORA-06512: en línea 1
   


tambien intente hacerlo con un cursor de manera distinta pero casualmente llegue al mismo error xD


declare

NOM_SEQ  VARCHAR2(100);
ULT_SEQ  NUMBER;
VAL_SEQ  NUMBER;
NEXT_SEQ NUMBER;

BEGIN

FOR CUR IN (
    SELECT seQuence_name, LAST_NUMBER   
      from all_sequenceS
     where sequence_name like '%SPRIDEN_SURROGATE%'
        or sequence_name like '%GTVZIPC_SURROGATE%'
        or sequence_name like '%STVCNTY_SURROGATE%'
        or sequence_name like '%SPRADDR_SURROGATE%'
        or sequence_name like '%SPRTELE_SURROGATE%'
        or sequence_name like '%SPBPERS_SURROGATE%'
        or sequence_name like '%GOREMAL_SURROGATE%'
        or sequence_name like '%SPREMRG_SURROGATE%'
        or sequence_name like '%GOBINTL_SURROGATE%'
        or sequence_name like '%SPRMEDI_SURROGATE%'
        or sequence_name like '%SPRHOLD_SURROGATE%'
        or sequence_name like '%SORFOLK_SURROGATE%'
        or sequence_name like '%SGBSTDN_SURROGATE%'
        or sequence_name like '%SGRSATT_SURROGATE%'
        or sequence_name like '%SGRSCMT_SURROGATE%'
        or sequence_name like '%SGRCHRT_SURROGATE%'
        or sequence_name like '%SIBINST_SURROGATE%'
        or sequence_name like '%SGRADVR_SURROGATE%'
        or sequence_name like '%SHRTTRM_SURROGATE%'
        or sequence_name like '%SHRTCKN_SURROGATE%'
        or sequence_name like '%SHRTCKG_SURROGATE%'
        or sequence_name like '%SHRTCKL_SURROGATE%'
        or sequence_name like '%SARADAP_SURROGATE%'
        or sequence_name like '%SARAPPD_SURROGATE%'
        or sequence_name like '%SORHSCH_SURROGATE%'
        or sequence_name like '%SYRCRMI_SURROGATE%'
        or sequence_name like '%TBRACCD_SURROGATE%'
        or sequence_name like '%STVSBGI_SURROGATE%'
        or sequence_name like '%SORBTAG_SURROGATE%'
        or sequence_name like '%SORBTAL_SURROGATE%'
        or sequence_name like '%SHRTGRD_SURROGATE%'
        or sequence_name like '%SHBTATC_SURROGATE%'
        or sequence_name like '%SHRTATC_SURROGATE%'
        or sequence_name like '%SORBDMO_SURROGATE%'
        or sequence_name like '%SOBSBGI_SURROGATE%'
        or sequence_name like '%STVBCHR_SURROGATE%'
        or sequence_name like '%SORBCHR_SURROGATE%'
        or sequence_name like '%SORBCMT_SURROGATE%'
        or sequence_name like '%SORTEST_SURROGATE%'
        or sequence_name like '%STVCIPC_SURROGATE%'
        or sequence_name like '%STVTESC_SURROGATE%'
        or sequence_name like '%STVTSRC_SURROGATE%'
        or sequence_name like '%SSBSECT_SURROGATE%'
        or sequence_name like '%SSRLINK_SURROGATE%'
        or sequence_name like '%SSBXLST_SURROGATE%'
        or sequence_name like '%SSRXLST_SURROGATE%'
        or sequence_name like '%SSRMEET_SURROGATE%'
        or sequence_name like '%SIRASGN_SURROGATE%'
        or sequence_name like '%SFBETRM_SURROGATE%'
        or sequence_name like '%SFRSTCR_SURROGATE%'
        or sequence_name like '%SGRSATT_SURROGATE%'
        or sequence_name like '%TBRMEMO_SURROGATE%'
        or sequence_name like '%SARCHKL_SURROGATE%'
        or sequence_name like '%SPRHOLD_SURROGATE%'
        or sequence_name like '%SGRSCMT_SURROGATE%'
        or sequence_name like '%SHRMRKS_SURROGATE%'
        or sequence_name like '%SHRMRKA_SURROGATE%'
        or sequence_name like '%SMBSLIB_SURROGATE%'
        or sequence_name like '%SMRSWAV_SURROGATE%'
        or sequence_name like '%SMRSWPV_SURROGATE%'
        or sequence_name like '%SHRDGMR_SURROGATE%'
       and sequence_owner ='SATURN'
       )
       
      LOOP -- esta es la linea 78
            EXECUTE IMMEDIATE 'SELECT SATURN.'||CUR.SEQUENCE_NAME||'.NEXTVAL INTO '||ULT_SEQ||' FROM DUAL';
            VAL_SEQ := CUR.LAST_NUMBER - ULT_SEQ;
           
            IF VAL_SEQ > 0 THEN
         
            EXECUTE IMMEDIATE 'ALTER SEQUENCE SATURN.'||CUR.SEQUENCE_NAME
            ||' INCREMENT BY '||VAL_SEQ;
           
            EXECUTE IMMEDIATE 'SELECT SATURN.'||CUR.SEQUENCE_NAME||'.NEXTVAL FROM DUAL';
           
            EXECUTE IMMEDIATE 'ALTER SEQUENCE SATURN.'||CUR.SEQUENCE_NAME
            ||' INCREMENTE BY 1';
     
            END IF;
           
      END LOOP;
       
END; 

ORA-00936: falta una expresión
ORA-06512: en línea 78


muchas gracias por su ayuda saludos
#10
Hola Buenos tardes,

una pregunta, es posible  contar las celdas de un excel siempre y cuanto no estén vacías?. e estado buscando info y solo me salen funciones de excel nada con el bat, quiero automatizar ese proceso y no me sale nada, o sera mejor automatizarlo con un macro?

Gracias por su tiempo Saludos
#11
Scripting / duda con FOR
24 Febrero 2015, 13:26 PM
hola nuevamente xD, volvi con mis preguntas raras xD

tengo el siguiente codigo
@echo off
echo    éíííííííííííííííííííííííííííííííííííííííííííííííííííííííííí»
echo    º       shapes de los errores encontrados en archivos      º
echo    èíííííííííííííííííííííííííííííííííííííííííííííííííííííííííí¼

for /f "delims=! usebackq" %%c in (`sqlplus -s %conexion% @%path_sql%t`) do set res=%%c
fme.exe %path_fme%errores_archivos.fmw --comuna %res% --destdataset_oracle8i_db orcl_qa --out_user qa_datac --out_password qa_dc
echo  %res%
pause


los -- indican que viene un parametro, luego el nombre del parametro y el valor para el parametro
la %path_fme% ruta donde esta almacenado el archivo para que se ejecute con el programa fme
la %path_sql% es la ruta donde se almacenan los archivos de extension .sql osea las querys para la BD

el asunto es que el for no se cierra solo, me pide cerrarlo a mano escribiendo exit cuando el bat esta ejecutandoce y si al bat le dejo escrito exit me termina el bat, hay alguna forma de obligar a cerrar el for?

t solo es una consulta que dice select nombre_comuna from var_comuna (var comuna mi tabla), este valor lo rescato y se lo paso a %res% quien llenara comuna que servirá para hacer un log del programa fme
eso muchas gracias, ojala que lo pueda cerrar o me puedan orientar por que no se cierra solo el for....

Ahh se me olvidaba el For no tiene las llaves o parentesis () porque si le pongo los parentesis si o si me pedira que lo cierre yo mismo y luego de eso pasa al siguiente bat, en todos los otros bat al dejarlo sin los paréntesis termina de iterar y vuelve al for que lo llamo o sigue con lo siguiente

gracias, :silbar:
Saludos

EDITO: lo modifique para explicar un poco mejor unas variables  y unas comas que le daban otro sentido a mi explicacion
#12
Scripting / variables en batch
11 Febrero 2015, 17:16 PM
Hola de nuevo, tengo una duda existencial, estoy seguro que en algun momento resolvi esto, pero se me olvido, y no lo encuentro en la web,

tengo lo siguiente

FOR /F "usebackq delims=!" %%i IN (`sqlplus -s QA_DATAC/qa_dc@orcl_qa @%PATH_SQL%t1`) DO (
set valor= %%I
)

no me regulsta,  por si las dudas la query T! solo es un count de una tabla

select count(*) from  errores_geom


necesito pasar el valor de  i a una variable local, que pueda existir fuera del for, como lo puedo lograr? y aprovechando, esa valor de la tabla, cuanta registros, se esta pasando bien a la variable %%i, aunque no exista fuera del for

Saludos Gracias por su ayuda
#13
Electrónica / RFID
9 Febrero 2015, 20:12 PM
Hola buenas, tardes, no se si este tema va aqui, como el RFID es una red de campo cercano, elegi ponerla aqui, aunque mi pregunta tambien es sobre el hardware, bueno a lo que vine, si estoy mal, me dicen donde ubicar la pregunta


Este año egreso y tengo que hacer un proyecto, mi idea es automatizar una bodega con rfid y un pequeño robot, que se preocupe de los despachos, pero no tengo ni idea de donde comenzar a buscar informacion para crear las redes del RFID el robot o el hardware, tendré profesores guia que me van a ayudar, pero estare corto de tiempo, por lo mismo quiero empezar de antes, asi los profes solo corrigen sobre algo que ya este hecho, mi idea es implementar esto en una maqueta, pequeña de 1mtx1mt pero funcional, si alguien me pudiera ayudar con alguna guia, para entender RFID, como programar las etiquetas, se lo agradeceria muchicimo, ya que en la web, solo encuentro informacion general sobre lo que es el RFID, eso muchas gracias
#14
Bases de Datos / ora 936
9 Febrero 2015, 14:14 PM
Hola buenos dias, queria ver si me podian ayudar, tengo el siguiente problema,
Tengo un store procedure (SP) que puede crea cualquiera de 5 esquemas distintos (pero los genera 1 cada vez que se la lanza el proceso), desde las las Pk's, los datos hasta las Fk's, el SP consiste en partes estáticas y otras dinamicas, según el esquema, bueno el error esta al momento de insertar la data en los esquemas de colombia y uruguay, este mismo SP puede crear sin problemas los esquemas de argentina chile y peru, el erro precisamente me lo indica en la parte estática, en la parte que inserta la data para las tablas, que se supone en todos los esquemas son iguales me aparece el error  ora 936 indicandome que me falta una expresion pero es el mismo codigo que se usa y funciona en Chile, Peru o Argentina, pero para cualquiera de los otros dos esquemas, Colombia o Uruguay aparece ese error, les muestro el codigo, ojo que esto es un SP de prueba, tiene cursores, que se usan para otras cosas, y no se estan usando aqui
la tabla prueba esta creada de esta forma

PROMPT CREATE TABLE comuna
CREATE TABLE comuna (
  id_provincia        NUMBER(5,0)   NULL,
  lat                 NUMBER(11,8)  NULL,
  lon                 NUMBER(11,8)  NULL,
  id_centro_urbano    NUMBER(4,0)   NULL,
  cod_subdere         VARCHAR2(5)   NULL,
  id_comuna           NUMBER(4,0)   NULL,
  id_region           VARCHAR2(4)   NULL,
  nombre_comuna       VARCHAR2(300) NULL,
  poblacion_rural     NUMBER        NULL,
  poblacion_urbana    NUMBER        NULL,
  poblacion_ult_censo NUMBER        NULL,
  codigo_ine          VARCHAR2(10)  NULL
)
/


GRANT ALTER,DEBUG,DELETE,FLASHBACK,INDEX,INSERT,ON COMMIT REFRESH,QUERY REWRITE,REFERENCES,SELECT,UPDATE ON comuna TO configuracion;



esta query llena la tabla comuna, y me aparece el error, indicandome que esta query me falta una expresion, pero no entiendo, que sucede

PROMPT CREATE OR REPLACE PROCEDURE prueba
CREATE OR REPLACE PROCEDURE prueba(szPAIS IN VARCHAR2)
AS
lpNIVEL3 NUMBER(2,0);
lpNIVEL2 NUMBER(2,0);
lpNIVEL1 NUMBER(2,0);
lpNIVEL5 NUMBER(2,0);
SQL_STR VARCHAR2(1000);
lpCOD_PAIS NUMBER(3,0);
lpNIVEL    NUMBER(3,0);

CURSOR C_TAB_FK IS
                  SELECT TABLE_NAME, OWNER, CONSTRAINT_NAME NOMBRE_FK
                    FROM CONFIGURACION.CONSTRAINTS
                   WHERE CONSTRAINT_TYPE = 'R'
                     AND OWNER = szPAIS
                     AND TABLE_NAME IN (SELECT DISTINCT TABLE_NAME
                                          FROM CONFIGURACION.MAPPAIS_COLUMN
                                         WHERE ESQUEMA =szPAIS
                                           AND FK <> 'N'
                                         )
                     AND CONSTRAINT_NAME <>'AMARRE_DIRECCIONES_AMARRE_FK1'
                    ORDER BY TABLE_NAME;

-- CONTIENE LAS COLUMNAS DE UNA TABLA DONDE SE CREARA LA FK
-- CAMPO FK CONTIENE EL NOMBRE DE LA TABLA QUE SE REFERENCIA
CURSOR C_COL_FK IS
               SELECT COLUMN_NAME, FK, CONSTRAINTS_NAME
                 FROM MAPPAIS_COLUMN
                WHERE FK <> 'N'
                  AND CONSTRAINTS_NAME IN(SELECT NOMBRE
                          FROM CONFIGURACION.MAPPAIS_CNS_LIST)
                  AND ESQUEMA = szPAIS;


--- CONTIENE LAS COLUMNAS QUE SE REFERENCIAN
CURSOR C_COLPRI_FK IS
               SELECT COLUMN_REF
                 FROM MAPPAIS_COLUMN
                WHERE FK <> 'N'
                  AND CONSTRAINTS_NAME IN(SELECT NOMBRE
                          FROM CONFIGURACION.MAPPAIS_CNS_LIST)
                  AND ESQUEMA = szPAIS;

--CURSOR PARA CREAR LAS TABLAS CONTIENE LOS  NOMBRES DE LAS TABLAS DE 'X' ESQUEMA
CURSOR C_TAB IS
               SELECT
                      DISTINCT ESQUEMA,TABLE_NAME
                 FROM
                      CONFIGURACION.MAPPAIS_COLUMN
                WHERE ESQUEMA = szPAIS;

-- CONTIENE LAS COLUMNAS DE UNA TABLA DE 'X' ESQUEMA
        CURSOR C_COL IS
               SELECT
                      ESQUEMA, TABLE_NAME, COLUMN_NAME, TYPE_COLUMN
                 FROM
                      CONFIGURACION.MAPPAIS_COLUMN
                WHERE ESQUEMA = szPAIS
                  AND TABLE_NAME IN(SELECT TABLE_NAME FROM CONFIGURACION.MAPPAIS_TAB_LIST);

--
CURSOR C_TAB_PK IS
                  SELECT TABLE_NAME, OWNER, CONSTRAINT_NAME NOMBRE_PK
                    FROM CONFIGURACION.CONSTRAINTS
                   WHERE CONSTRAINT_TYPE = 'P'
                     AND OWNER = szPAIS
                     AND TABLE_NAME IN ((SELECT DISTINCT TABLE_NAME
                                          FROM CONFIGURACION.MAPPAIS_COLUMN
                                         WHERE ESQUEMA =szPAIS
                                           AND PK = 'Y'));

-- CONTIENE LAS COLUMNAS DE UNA TABLA
CURSOR C_COL_PK IS
               SELECT COLUMN_NAME
                 FROM MAPPAIS_COLUMN
                WHERE PK = 'Y'
                  AND TABLE_NAME IN(SELECT TABLE_NAME
                          FROM CONFIGURACION.MAPPAIS_TAB_LIST)
                  AND ESQUEMA = szPAIS;



--- VARIABLES QUE MANEJAN LA CREACION DE LA QUERY PARA LAS FK
        R_TAB_FK    C_TAB_FK%ROWTYPE;
        R_COL_FK    C_COL_FK%ROWTYPE;
        R_COL_FKPRI C_COLPRI_FK%ROWTYPE;

---VARIABLE QUE ALMACENA EL STRING, CON LA INSTRUCCION DE CREACION DE LAS FK
szQURYFK VARCHAR2(10000);

---VARIABLES QUE MANEJAN CURSORES PARA PK
        R_TAB_PK C_TAB_PK%ROWTYPE;
        R_COL_PK C_COL_PK%ROWTYPE;
        szQURY VARCHAR2(10000);

--- VARIABLES QUE MANEJAN LA CREACION DE LAS TABLAS
        R_TAB C_TAB%ROWTYPE;
        R_COL C_COL%ROWTYPE;
        szQUERY VARCHAR2(10000);
        szTAB VARCHAR2(100);
----------------------------------------


---VARIABLES QUE MANEJAN LA CREACION DE LAS PK
szQRY VARCHAR2(10000);

BEGIN
lpNIVEL5    :=5;
lpNIVEL3    :=3;
lpNIVEL2    :=2;
lpNIVEL1    :=1;
lpCOD_PAIS  :=598;
lpNIVEL     :=3;

--------------------------------------------------------------------------------
--COMUNA
EXECUTE IMMEDIATE 'ALTER TABLE '||SZPAIS||'.COMUNA NOLOGGING';
EXECUTE IMMEDIATE 'INSERT /* + APPEND */ INTO '||SZPAIS||'.COMUNA (NOMBRE_COMUNA, ID_CENTRO_URBANO, CODIGO_INE, LAT, LON, ID_COMUNA
                  ,ID_PROVINCIA, ID_REGION, COD_SUBDERE, POBLACION_ULT_CENSO, POBLACION_URBANA, POBLACION_RURAL)
       SELECT
                  DISTINCT
                  CAST (B.NOMBRE_DIV_GEO AS VARCHAR2(50))       AS NOMBRE_COMUNA,
                  CAST (C.ID_CENTRO_URBANO AS NUMBER(4,0))      AS ID_CENTRO_URBANO,
                  CAST (NULL AS VARCHAR2(10))                   AS CODIGO_INE,
                  CAST (B.LAT AS NUMBER(11,8))                  AS LAT,
                  CAST (B.LON AS NUMBER(11,8))                  AS LON,
                  CAST (B.ID_DIV_GEO AS NUMBER(4,0))            AS ID_COMUNA,
                  CAST (Z.ID_PROVINCIA AS NUMBER(5,0))          AS ID_PROVINCIA,
                  CAST (Z.ID_REGION AS VARCHAR2(3))             AS ID_REGION,
                  CAST (B.CODIGO_SUBDERE AS VARCHAR2(5))        AS COD_SUBDERE,
                  CAST (B.POBLACION_ULT_CENSO AS NUMBER(12,0))  AS POBLACION_ULT_CENSO,
                  CAST (B.POBLACION_URBANA AS NUMBER(12,0))     AS POBLACION_URBANA,
                  CAST (B.POBLACION_RURAL AS NUMBER(12,0))      AS POBLACION_RURAL
         FROM     FOTOFULL_LATAM_1.DIVISION_GEOPOLITICA B
   INNER JOIN     FOTOFULL_LATAM_1.CENTRO_URBANO C
           ON     B.ID_CENTRO_URBANO = C.ID_CENTRO_URBANO
          AND     B.COD_PAIS = C.COD_PAIS
   INNER JOIN     (    SELECT P.ID_DIV_GEO,
                              P.ID_DIV_GEO AS ID_PROVINCIA,
                              R.ID_DIV_GEO_OLD AS ID_REGION
                        FROM  FOTOFULL_LATAM_1.DIVISION_GEOPOLITICA P
                  INNER JOIN  FOTOFULL_LATAM_1.DIVISION_GEOPOLITICA R
                          ON  P.ID_DIV_GEO_PADRE = R.ID_DIV_GEO
                         AND  P.COD_PAIS         = R.COD_PAIS
                         AND  P.COD_PAIS = '||LPCOD_PAIS||'
                         AND  P.ID_NIVEL = '||LPNIVEL3||'
                         AND  R.ID_NIVEL ='||LPNIVEL2||'
                   ) Z
           ON     B.ID_DIV_GEO_PADRE = Z.ID_DIV_GEO
          AND     B.COD_PAIS ='||LPCOD_PAIS||'
          AND     B.ID_NIVEL = '||LPNIVEL||'';
COMMIT ;


END;
/


Esa es mi pregunta, ojala me puedan echar una mano, debe ser algo super tonto, pero estoy tan mareado con el SP, que no lo veo seguramente, Gracias ::) :(
#15
hola buenos días, gracias por su tiempo primero que todo seré un poco mas explicito con la pregunta, tengo una variable que se inicializa en el bat numero 1 (le pondremos asi para ejemplificar) y esa  variable no se usa hasta que pasa al bat nro 4, entre el 1 y el 4 esta el bat nro 2 y numero 3, pero ya en el bat numero 4 no puedo manejar la variable, mi pregunta es hay un limite de bat que puedo llamar para usar una variable? osea puedo inicializar una variable en el bat 1 y usar la variable o el valor de la variable en el bat 20??

gracias por su ayuda :silbar:

#16
Scripting / Ayuda con batch y sql plus
29 Diciembre 2014, 13:16 PM
Hola Buenos días :}

tengo un pequeño problema... mentira es grande !! T-T... sorry por la locura pero es que no se como sacar este maldito batch, de antemano indicar que lo que se de batch es una semana aprox investigando, en su web y en algunas otras, bueno dejando de lado tanto preámbulo



:ALLEXEC
CLS
COLOR  F6
::LOS COMENTARIOS SON PARA USTEDES QUIENES ME AYUDEN NO ESTAN EN EL CODIGO ORIGINAL

::ELIMINO UN .TXT QUE TIENE ALMACENADOS LAS COMUNAS DE UNOS ARCHIVOS CON CARTOGRAFIAS
DEL /F %LIST_WDG_PATH%LIST_COMUNAS.TXT
::LEE UN REPOSITORIO TOMA LOS ARCHIVOS NECESARIOS Y LOS IMPRIME EN EL TXT
FOR %%x in (%LIST_WDG_PATH%*.dwg) DO (echo %%x>>%LIST_WDG_PATH%LIST_COMUNAS.TXT
)
::ELIMINA UN TXT CON UNA COMUNA
DEL /F %LIST_WDG_PATH%COMUNAS.TXT
::TOMA LA LISTA DE COMUNAS Y ENTREGA EL NOMBRE DEL ARCHIVO A %%x
ADEMAS GENERA UN TXT CON CADA COMUNA DEL LISTADO
FOR /F "delims=!" %%x in (%LIST_WDG_PATH%LIST_COMUNAS.TXT) DO (echo %%x>%LIST_WDG_PATH%COMUNAS.TXT

::VARIABLE NECESARIA PARA EJECUTAR UN STORE PROCEDURE EN ORACLE
SET /A VARFULL=1
::ELIMINA TXT DONDE SE EJECUTAN LOS STORE PROCEDURE
DEL  %PATH_SQL%ESTADISTICA.SQL
::IMPRIME EN ESTADISITICA.TXT LA INSTRUCCION PARA EJECUTAR EL STORE PROCEDURE (SP)
ECHO EXEC sp_log_FULL(%VARFULL%);>>"%PATH_SQL%ESTADISTICA.SQL"
::AGREGA CODIGO A ESTADISTICA
ECHO COMMIT;>>"%PATH_SQL%ESTADISTICA.SQL"
::AGREGA SALIDA A ESTADISTICA
ECHO EXIT;>>"%PATH_SQL%ESTADISTICA.SQL"
::STRING DE CONEXION PARA ORACLE
   sqlplus %conexion% @"%PATH_SQL%ESTADISTICA.SQL"

::LLAMADA A UN BAT QUE GENERA LA CARGA DE LOS ARCHIVOS A LA BD EN ORACLE
CALL "%PATH_SCRIPT%carga.bat"

:LO MISMO QUE ARRIBA SOLO EL VARFULL TIENE OTRO VALOR PARA EJECUTAR EL SP DE UNA MANERA DISTINTA
SET /A VARFULL=2
DEL "%PATH_SQL%ESTADISTICA.SQL"
ECHO EXEC sp_log_FULL(%VARFULL%);>>"%PATH_SQL%ESTADISTICA.SQL"
ECHO COMMIT;>>"%PATH_SQL%ESTADISTICA.SQL"
ECHO EXIT;>>"%PATH_SQL%ESTADISTICA.SQL"
   sqlplus %conexion% @"%PATH_SQL%ESTADISTICA.SQL"
)


LES EXPLICO EL CHORIZO...

el error se produce cuanto "seteo" las variables VARFULL todo lo anterior a la inicializacion de la variable funciona correctamente, pero luego de eso se cae, bueno para ser exacto, no se cae pero COMUNAS.TXT salta automaticamente a la ultima comuna y no genera la carga para cada comuna, solo para la ultima y tambien decir que si esta leyendo 5 archivos, el listado queda con 5 comunas pero comuna salta a la ultima e itera 5 veces con la ultima comuna...
alguna sugerencia para mi problema??

Muchas gracias por su tiempo... aaa y muy buen foro me han ayudado sin saberlo varias veces  ;-)