Oracle Java Source para probar conexión a base de datos.

Con este java Source se puede comprobar si las credenciales de un usuario son «válidas» en la base de datos.

JAVA SOURCE:

DROP JAVA SOURCE "TestConnect";

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "TestConnect" as import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class TestConnect {

//public static void main(String[] argv)
public static String TestConnect(String p_DataBase,
                                   String p_Username,
                                   String p_Password
                                  )
   {
   try {

      Class.forName("oracle.jdbc.driver.OracleDriver");

        } catch (ClassNotFoundException e) {

            //System.out.println("Where is your Oracle JDBC Driver?");
            e.printStackTrace();
            return  "N";

           }

       //System.out.println("Oracle JDBC Driver Registered!");

       Connection connection = null;

    try {

          connection = DriverManager.getConnection( p_DataBase, p_Username, p_Password);
          connection.close();
    } catch (SQLException e) {

         //System.out.println("Connection Failed! Check output console");
         e.printStackTrace();
         return "N";

       }
   if (connection != null) {
       //System.out.println("You made it, take control your database now!");
       return "S";
    } else {
       //System.out.println("Failed to make connection!");
       return "N";
}
}

}
/

FUNCIONES EN ORACLE:

FUNCIÓN QUE REFERENCIA AL JAVA SOURCE:

CREATE OR REPLACE FUNCTION ValidaClave_JAVA (p_BaseDatos IN varchar2,
p_Usuario IN varchar2,
p_Password IN varchar2)
RETURN VARCHAR2
IS
LANGUAGE JAVA
NAME ‘TestConnect.TestConnect(java.lang.String,
java.lang.String,
java.lang.String) return String’ ;
/


FUNCIÓN QUE VALIDA LA CONEXIÓN:

La variable v_UrlBaseDatos es al que contiene el string de conexión a la base de datos, se debe sustituir por la referencia real a la base de datos del HOST, PUERTO Y SID BASE DE DATOS (Esto se puede obtener de la configuración definida en el TNSNAMES.ORA).

CREATE OR REPLACE FUNCTION ValidaClave_db (p_Usuario IN varchar2,
p_PassWord IN varchar2)
RETURN VARCHAR2
IS
v_Resultado VARCHAR2 (1000) := ‘N’;
v_UrlBaseDatos VARCHAR2 (1000)
:= ‘jdbc:oracle:thin:@HOST:PUERTO:SIDBASEDATOS’;
BEGIN
IF p_Usuario = USER
THEN
v_Resultado :=
‘El usuario autorizador no puede ser el mismo que esta conectado. ‘;
RETURN (v_Resultado);
END IF;

v_Resultado := ValidaClave_JAVA (v_UrlBaseDatos, p_Usuario, p_PassWord);
RETURN (v_Resultado);
END;
/


			

JulexFR