February 23 2012

Buscar código en vistas de Oracle con PL/SQL

Thursday, February 23, 2012 13:56
Posted in category Informática, Oracle
DECLARE
 
     lncount  NUMBER;
     lvsearch VARCHAR2(100) := lower('cadena_buscar');
     CURSOR cur_views IS
               SELECT * FROM all_views t where view_name like 'XX%';
     lrow_views cur_views%ROWTYPE;
     v_line     VARCHAR2(30000);
BEGIN
 
    lncount := 0;
    OPEN cur_views;
 
    LOOP
 
      BEGIN
 
         FETCH cur_views
              INTO lrow_views;
         EXIT WHEN cur_views%NOTFOUND;
         --Convert LONG to VARCHAR2
         v_line := substr(lrow_views.text, 1, 30000);
         IF v_line LIKE '%' || lvsearch || '%'
         THEN
              dbms_output.put('Owner:' || lrow_views.owner);
              dbms_output.put_line(' ViewName:' || lrow_views.view_name);
           --   dbms_output.put(' Text:' || v_line);
           --   dbms_output.put_line('');
              lncount := lncount + 1;
         END IF;
 
       EXCEPTION
         WHEN OTHERS THEN dbms_output.put_line('ERROR ViewName:' || lrow_views.view_name);
       END;
    END LOOP;
 
    dbms_output.put_line('');
    dbms_output.put_line(lncount ||    ' record(s) was found in ALL_VIEWS table.');
 
    CLOSE cur_views;
 
 
END;
February 22 2012

Obtener el mail de una cadena de texto en PL/SQL

Wednesday, February 22, 2012 14:10
Posted in category Oracle
-- Proposito  : Devuelve un email dentro de una cadena de texto.
    -------------------------------------------------------------------------------
     FUNCTION get_email_from_texto (v_texto IN  VARCHAR2) RETURN VARCHAR2 IS
      v_email VARCHAR2(500);
     BEGIN
        SELECT REGEXP_SUBSTR(v_texto,'([a-zA-Z0-9_+*$%\^&!\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9:]{2,4})+')
          INTO v_email
        FROM dual;
        RETURN v_email;
        EXCEPTION
                WHEN OTHERS THEN RETURN NULL;
     END;
February 21 2012

Obtener la enésima fila de una tabla en Oracle

Tuesday, February 21, 2012 19:46
Posted in category Oracle, Programación

A veces queremos poder recuperar la enésima fila de una consulta. Una posible opción sería la siguiente:

SELECT rn, columna 
FROM ( SELECT rownum rn, columna FROM tabla )
WHERE rn=N;

Esta no es la única, ni la mejor solución. Aquí hay un debate con otro tipo de soluciones a esta consulta que puede que te sean de interés.

February 20 2012

Humor linuxero en un bar

Monday, February 20, 2012 18:19
Posted in category Humor Geek

– Juan : He mirado en el “/var/cache” y no he encontrado nada…

– Maria: Mira a ver si lo encuentras en el bar coyote

February 8 2012

Cómo acceder a una URL protegida desde JAVA

Wednesday, February 8, 2012 14:06

Si desde java necesitas conectarte a una URL que está protegida con contraseña de autenticación HTTP, podemos utilizar la clase Authenticator.
Simplemente tendremos que crear una clase que extienda de esta última con los credenciales adecuados para poder conectarnos:

// Install the custom authenticator
Authenticator.setDefault(new MyAuthenticator());
 
// Access the page
try {
    // Create a URL for the desired page
    URL url = new URL("http://hostname:80/index.html");
 
    // Read all the text returned by the server
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    String str;
    while ((str = in.readLine()) != null) {
        // str is one line of text; readLine() strips the newline character(s)
    }
    in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
 
public class MyAuthenticator extends Authenticator {
    // This method is called when a password-protected URL is accessed
    protected PasswordAuthentication getPasswordAuthentication() {
        // Get information about the request
        String promptString = getRequestingPrompt();
        String hostname = getRequestingHost();
        InetAddress ipaddr = getRequestingSite();
        int port = getRequestingPort();
 
        // Get the username from the user...
        String username = "myusername";
 
        // Get the password from the user...
        String password = "mypassword";
 
        // Return the information
        return new PasswordAuthentication(username, password.toCharArray());
    }
}
February 5 2012

Usar la consola de Salida (Output) en Eclipse System.out.println vs Log

Sunday, February 5, 2012 22:07
Posted in category Informática, Programación

Si te encuentras ante tu primera aplicación para Android utilizando como editor el IDE de Eclipse puede que te sorprendas al ver que la llamada a System.out.println no muestra nada en la consola. Tranquilo, vamos a poder debuguear nuestros programas de una forma sencilla.

Existe otra consola, conocida como LogCat, que es la que necesitaremos habilitar para ver la salida. Para ello tendremos que dirigirnos a:

Windows –> Show View –> Android –> (Other) –> LogCat

Para loguear nuestros mensajes, utilizaremos la clase Log, la cual redigirá los mensajes a la consola LogCat. La clase Log tiene una serie de métodos que varian según el mensaje que se quiera mandar a la consola:

Log.v (para modo verboso)
Log.d (para debug)
Log.i (para info)
Log.w (para warnings)
Log.e (para errores)

Cualquier método recibe 2 parámetros, el Tag y el Mensaje. El tag es útil para indicar el origen del mensaje. Puede ser cualquier cadena de texto.

Log.v(TAG, mensaje);
February 4 2012

Cómo configurar Vsftpd para múltiples usuarios asignandoles un directorio específico

Saturday, February 4, 2012 16:14
Posted in category Administrador Sistemas

Para conseguir esto, simplemente tendremos que crear un nuevo usuario para vsftpd y crearle un fichero de configuración donde le indicaremos la ruta a partir de la cual tiene permisos transferir ficheros.

La propiedad user_config_dir del fichero de configuración de vsftpd nos indicará el directorio donde tendremos que crear el nuevo fichero de configuración para nuestro usuario.

Si quisieramos crear un usuario de nombre “carlos” tendríamos que crearle un fichero de configuración   en la ruta establecida en la directiva “user_config_dir“, en nuestro caso sería en /etc/vsftpd_user_conf/carlos

En dicho fichero de configuración la directiva local_root, le indicará a vsftpd cúal es el directorio en el que realizará el login el usuario carlos:

root@ftpserver: cd /etc/vsftpd_user_conf
root@ftpserver: cat carlos
##fichero de configuración del usuario carlos
local_root=/home/ftpsite/hosts/directorio_compartido/carlos/
January 11 2012

Chequeadores de Sintaxis Online de PHP

Wednesday, January 11, 2012 14:12
Posted in category Internet, Programación

¿Necesitas chequear la sintaxis de un programa escrito en PHP?  Por ejemplo nos puede ser de utilidad chequear la sintaxis a la hora de modificar algún plugin de wordpress o joomla que se nos resiste.

He aquí un listado de 3 enlaces que os pueden ser de utilidad:

http://www.hcibook.com/meandeviation/php-syntax-check/v5-2/syntax-check.php

http://www.piliapp.com/php-syntax-check/

http://phpcodechecker.com/

January 3 2012

El juego del Pac Man en la vida real

Tuesday, January 3, 2012 21:27
Posted in category Humor Geek

y de regalo Mario Kart en vivo:

January 2 2012

ORA-06508 PL/SQL: could not find program unit being called

Monday, January 2, 2012 14:42
Posted in category Oracle

Cuando buscas este error en internet, encontrarás la siguiente información:

Causa: Se ha realizado una llamada a un procedimiento que no ha podido ser localizado. El programa puede haber sido borrado, modificado, o haberse compilado con errores.
Acción: Chequea que todos los programas referenciados, incluyendo los cuerpos de los paquetes, existen y son válidos.

A veces tenemos muchos objetos que dependen muchos unos de otros. Necesitamos más información para solucionar el problema. Si te encuentras con este error, lo más seguro es que estés utilizando las sentencias SQLCODE y SQLERRM en tu bloque de excepción de código PL/SQL:

BEGIN
 NULL;
EXCEPTION
 WHEN OTHERS THEN
 ROLLBACK;
 INSERT_LOG(SQLCODE, SQLERRM);
END;

No te aconsejo que controles los errores de esta manera. La mejor manera de controlar esto es gracias al paquete DBMS_UTILITY:

  BEGIN
 NULL;
EXCEPTION
 WHEN OTHERS THEN
 ROLLBACK;
 INSERT_LOG(SQLCODE,
 DBMS_UTILITY.FORMAT_ERROR_STACK || '@' ||
 DBMS_UTILITY.FORMAT_CALL_STACK);
END;

Ahora no obtendremos el error ORA-06508. Si no que obtendremos la explicación al mismo:

ORA-04045: errors during recompilation/revalidation OF SIM.PKXXX
ORA-04052: error occurred WHEN looking up remote object TCLCM.PRC_XX@ERP_APPS.WORLD
@----- PL/SQL Call Stack -----
 object      line  object
 handle    NUMBER  name
3dc3a9010      1565  package body SIM.PK_XXX
3d9571de8         3  anonymous block

Visto aquí


Página 5 de 64« Inicio...34567...Fin »