|
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 @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, 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 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
|
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 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
|
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
|
|
|
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 :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
|
|
|
|
|
|
|