elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Scripting / duda con FOR en: 24 Febrero 2015, 13:26 pm
hola nuevamente xD, volvi con mis preguntas raras xD

tengo el siguiente codigo
Código:
@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
Código:
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  Programación / Scripting / variables en batch en: 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
Código:
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
Código:
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  Informática / Electrónica / RFID en: 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  Programación / Bases de Datos / ora 936 en: 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
Código:
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
Código:
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  Programación / Scripting / una variable se puede invocar cuantas veces? en: 5 Enero 2015, 13:45 pm
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  Programación / Scripting / Ayuda con batch y sql plus en: 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


Código:
: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  ;-)
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines