OracleXE en ubuntu 7.10 desde repositorios

Para comenzar tendremos que añadir el nuevo repositorio a nuestro archivo “sources.list”:

  • sudo gedit /etc/apt/sources.list
Ahora añadimos:
Ahora actualizamos los repositorios e instalamos:
  • sudo aptitude update
  • sudo aptitude install oracle-xe-universal oracle-xe-client
Una vez instalado configuramos Oracle:
  • sudo /etc/init.d/oracle-xe configure
Si no queremos que nuestro pc cargue al inicio de sesión oracle deberemos cargar las variables de entorno de Oracle.
Para iniciar una bd tendremos que asignar el grupo bd a los usuarios que queramos -el nuestro y oracle-
En caso de que no queramos que nuestro sistema arranque al inicio de sesión oracle tendremos que hacer lo siguiente:
  • sudo sh /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

Ahora en Aplicaciones deberíamos tener Oracle

Anuncios

Tratar cadenas de texto con una Function en Oracle

Función que he creado en Oracle y a la qual pasandole una cadena de texto: “nombre1,nombre2,nombre3”. Nos los devolveria separados y podriamos hacer el insert de forma individual en la base de datos por ejemplo.

El código de la función es este:

function get_token(
the_list in varchar2,
the_index in number,
delim in varchar2 := ‘,’
)
return varchar2
is
start_pos number;
end_pos number;
begin
if the_index = 1 then
start_pos := 1;
else
start_pos := instr(the_list,delim,1,the_index – 1);
if start_pos = 0 then
return null;
else
start_pos := start_pos + length(delim);
end if;
end if;
end_pos := instr(the_list,delim,start_pos,1);
if end_pos = 0 then
return substr(the_list,start_pos);
else
return substr(the_list,start_pos,end_pos – start_pos);
end if;
end get_token;

En la variable delim le decimos si van a estar separadas por comas o porque delimitador. Un ejemplo simple de su uso es este:

v_contador :=1;

while GET_TOKEN(i_motivonovisita,v_contador,v_separador) is not null

LOOP

insert into tb_motivosnovisita (codvalor,foreignkeyfc,descripcion) values
(GET_TOKEN(i_codmotivonovisita,v_contador,v_separador),i_primarykey,
GET_TOKEN(i_motivonovisita,v_contador,v_separador));

v_contador := v_contador+ 1;

END LOOP;

Esto serviria para hacer un insert en una tabla con los registros que nos vendrian separados por “,”

Espero que sirva de ayuda

validar textarea teniendo en cuenta los saltos de línea

//Función per validar la longitud màxima de un textarea teniendo en cuenta los saltos de línia.

function ismaxlength(obj, longitud_ini) {
var alineas;
var nlineas, longitud;
longitud = longitud_ini;
alineas = obj.value.split(“rn”);
nlineas = alineas.length;
if (nlineas > 0) {
//Si hay saltos de línea hay que tenerlos en cuenta en la longitud máxima
longitud = longitud_ini – ((nlineas – 1) * 2);
}
if (obj.value.length > longitud) {
obj.value=obj.value.substring(0,longitud);
alert(msg.TXTA[0] + longitud_ini + msg.TXTA[1] +’n’);
}
}

Hacer un trim en Javascript con Regular expressions

Cómo hacer un trim en javascript de manera “elegante” usando regular expressions:

function trim(s){
s = s.replace(/\s+/gi, ‘ ‘); //sacar espacios repetidos dejando solo uno
s = s.replace(/^\s+|\s+$/gi, ”); //sacar espacios blanco principio y final

return s;
}

Pasos para crear un zip en java sin guardarlo en un directorio temporal

-Crear un ZipOutputStream que referencia el destino. En el ByteArrayOutputStream se guardará el zip temporalmente.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(baos);


-Crear un InputStream (o derivado) que referencia un archivo a agregar al ZIP. En el EmbeddedObject se guarda el archivo que se quiere añadir al zip.
EmbeddedObject obj;
InputStream is = obj.getInputStream();


-Crear una ZipEntry que representa el InputStream. Al ZipEntry se le pasa el nombre como se quiere que se llame el fichero que se añadirá al zip.
zipEntry = new ZipEntry(“12354.xls”);

-Agregar el ZipEntry al ZipOutputStream llamando a su método putNextEntry().
zip.putNextEntry(zipEntry);

-Copiar datos del InputStream al ZipOutputStream (usando un buffer array de bytes para leer desde el InputStream y luego escribirlo en el ZipOutputStream).
byte[] buffer = new byte[2048];
int byteCount;
while (-1 != (byteCount = is.read(buffer))) {
zip.write(buffer, 0, byteCount);
}


-Cerrar la entrada zip actual y el InputStream para escribir la siguiente entrada al ZipOutputStream.
zip.closeEntry();
is.close();

-Al añadir todos los ficheros al zip, cerrar el ZipOutputStream.
zip.close();

DJ Project, integración de navegadores web y reproductores flash en aplicaciones Swing

DJ Project es un proyecto libre que proporciona herramientas y librerías para apoyar el desarrollo de aplicaciones de escritorio Java. DJ Project – Native Swing es una parte del anterior proyecto que pretende facilitar la integración de componentes nativos en aplicaciones Swing, especialmente la integración de navegadores web y reproductores de Flash. DJ Project Native Swing trata de proporcionar un API para los componentes nativos similar a las API que suelen proporcionar los componentes Swing y, según los creadores, resuelve de un modo transparente para el programador todos los problemas relacionados con multithreading. Nuevamente según los creadores del proyecto, éste es uno de sus puntos fuertes respecto al componente JDIC Browser de Swing Labs.Aquí podéis ver unas capturas de pantalla y aquí podéis lanzar una demo (sólo para Windows de 32 bits) del proyecto.

¿Cuántos os habéis visto en la necesidad de integrar un componente nativo en una aplicación de escrtorio? ¿Qué solución usastéis para ello?

Actualización 1.4.1 de openSwing, framework libre para el desarollo de aplicaciones swing Java

OpenSwing es un framework para el desarrollo de aplicaciones swing, tanto para aquellas que no se comunican con una base de datos como para aquellas aplicaciones de dos o tres capas cuyo front end es una aplicación de escritorio. El framework incluye un conjunto de componentes gráficos implementados en Swing orientados a la visualización de datos entre los cuales hay componentes para mostrar cantidades de dinero, grids, un componente híbrido entre un árbol y un grid, calendarios, diagramas de Gantt y un largo etcétera.

OpenSwing también cuenta con una librería para el desarrollo de la capa de acceso a datos y (para las aplicaciones de tres capas) la lógica de negocio, así como una librería que se encarga de simplificar la comunicación con el servidor. También cuenta con componentes para visualizar documentos PDF y Excel. El framework se distribuye bajo licencia LGPL y cuenta con abundante documentación entre la cual se incluyen varias aplicaciones de demostración.

Algunos acoplamientos:

Home page: http://oswing.sourceforge.net

Demo: http://oswing.sourceforge.net/demo10/demo10.jnlp

JAllInOne demo: http://www.hostingjava.it/-carniel/jAllInOne.jnlp