Java ORACLE http://paulonline.nireblog.com Welcome!. Gracias por ingresar, espero guste. Wed, 04 Nov 2009 03:40:53 +0100 Java ORACLE http://files.nireblog.com/blogs/paulonline/gravatar.gif http://paulonline.nireblog.com http://nireblog.com O R A C L E http://paulonline.nireblog.com/post/2009/04/22/o-r-a-c-l-e http://paulonline.nireblog.com/post/2009/04/22/o-r-a-c-l-e Oracle Corporation compró a Sun Microsystems

4.GIF

2.GIF

1.GIF

3.GIF

Según mi punto de vista esto puede significar:

1.- Que Solaris sea el nuevo competidor de Linux, eso será al rojo vivo

2.- Que los servidores IBM tendrán una competencia con los Servidores ORACLE

3.- Que NetBeans descanse en el olvido, yo lo dije y lo sigo diciendo: JDeveloper es la voz

4.- Que Office y Windows para ser competitivos deben ser multiplataforma, no queda otra Bill.

5.- Que ORACLE haga picadillo a SAP, ya era hora ORACLE

6.- Que MySQL descanse en el olvido, PostgreSQL, correrás la misma suerte, la razón esmuy sencilla: no eres siquiera competencia para ORACLE DATABASE.

7.-Java nos demuestra otra vez que puede darse los lujos que quiera: va a llegar a costar y valer más. No creo que desaparezca el mejor Lenguaje de Programación

8.- .Net ¿qué es eso? .Net va a quedar en Windows solamente. Windows va a quedar con sus licencias y sus clientes. El problema es que la gente está adoptando LINUX, ahora, entonces Windows está bajando en ventas. Bill vas a tener que hacer algo ¿qué será?, ya se! volver libre a VisualBasic, es el único camino Bill. Así la comunidad PHP irá con VisualBasic, o creo que la comunidad VisualBasic se convertirá en comunidad Software Libre así como PHP.

9.- Esto es un baldazo de agua bien fría para los extrovertidos (algo de Windows por aquí, algo de Office por aca, algo de IBM por acá, dentro de este proyecto Java) que están en Sistemas. Ahora hay que ser introvertido y a la vez divertido: JavaOracle (OpenOffice+Solaris)

0.-Bueno, sobran motivos para estar felices por esta noticia.  Mi nuevo blog se llamará ORACLE.

Comments

]]>
Wed, 22 Apr 2009 04:17:33 +0100
Crear un JOB en ORACLE http://paulonline.nireblog.com/post/2009/01/08/crear-un-job-en-oracle http://paulonline.nireblog.com/post/2009/01/08/crear-un-job-en-oracle Un Job en pocas palabras es una tarea programada, entonces para correrlo utilizaremos un Store Procedure correr_job y el JOB en sí mismo que se llamará job_LLAMADOR (perdonen la sintaxis), y no se preocupen por que ...corre cada treinta segundos

create or replace PROCEDURE correr_job IS
BEGIN

--- aqui escribes la sentencia que desees por ejemplo

UPDATE T_USUARIO SET NESTID = '2' WHERE VUSERID='10666666666';

COMMIT;
END CORRER_job;

y con esto lo corres

create or replace
PROCEDURE job_LLAMADOR AS
JobN user_jobs.job%TYPE;
BEGIN
--La siguiente linea manda correr el JOB cada 30 segundos
--reemplazar 30/86400 por 7 para que sea una vez a la semana, cada siete dias
dbms_job.submit(JobN, 'begin CORRER_JOB; end;', SYSDATE,'SYSDATE + 30/86400');
COMMIT;
END;

Pueden crear una vista, o si no, consultar a la DB de su JDeveloper o a ORACLEXE con

SELECT JOB, NEXT_DATE, NEXT_SEC FROM DBA_JOBS;

Sí, continuo trabajando en Omnisciencia Consultores

chau

Comments

]]>
Thu, 08 Jan 2009 01:18:49 +0100
La magia de ORACLE http://paulonline.nireblog.com/post/2009/01/08/la-magia-de-oracle http://paulonline.nireblog.com/post/2009/01/08/la-magia-de-oracle ¿Cómo reportar el filtrado sin importar mayúsculas de minúsculas?

si Java los diferencia

Bueno, encontré lo siguiente:

...

String join=" WHERE UPPER(VNOMBRE) LIKE '%"+filtro.getNombre().toUpperCase()+"%' " + ....

...

espero les sirva

reporta sin importar mayúsculas no minúsculas

una verdadera magia.

Próximamente les daré el código de un Sorte en Java que no utiliza Randoms...Java

Para un conocedor de Java, solamente tiene que llamar métodos que ya están hechos...y el sorteo ¡ya estaba hecho!

es sumamente sencillo, es más, quiser que fues dificil, como lo fue el código anterior

pero hay que renovarse y les quiero proporcionar estos conocimientos.

chau

Comments

]]>
Thu, 08 Jan 2009 01:06:43 +0100
Sorteo JAVA http://paulonline.nireblog.com/post/2008/12/17/sorteo-java http://paulonline.nireblog.com/post/2008/12/17/sorteo-java En esta oportunidad les ofrezco el código de un programa para sortear elementos String:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.Hashtable;
import java.util.List;
import java.util.Random;

public class SorteoRandom{
public static void main(String[] args) {
try{
String[] exp=new String[11];
exp[0]="10323243324";
exp[1]="10432434213";
exp[2]="10432424244";
exp[3]="20432647774";
exp[4]="10286267589";
exp[5]="10792476654";
exp[6]="20268890355";
exp[7]="10268980254";
exp[8]="10757999785";
exp[9]="20653878687";
exp[10]="20646376576";

int tot_exp=exp.length;
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.println("Total de expedientes: "+tot_exp);
System.out.println("Ingrese numero:");
String bar=br.readLine();
int foo=Integer.parseInt(bar);
System.out.println("Expedientes: ");

Hashtable ht=new Hashtable();
for(int i=0;i ht.put(i,exp[i]);
System.out.println(ht.get(i));
}
System.out.println("El numero es: "+foo);
System.out.println("Los resultados del sorteo son:");
for(int i=0;i Random r=new Random();
ht.put(i,exp[r.nextInt(tot_exp)]);
System.out.println(i+1+". "+ht.get(i));
}
}
catch(IOException ioe){
ioe.getMessage();
}
}

}

Comments

]]>
Wed, 17 Dec 2008 17:36:32 +0100
La Potencia de Java http://paulonline.nireblog.com/post/2008/12/06/la-potencia-de-java http://paulonline.nireblog.com/post/2008/12/06/la-potencia-de-java Quiero decir que si no te sale un programa,

utiliza un try catch,

si no funciona con el try catch

en el catch, escribe tu programa

si no funciona con el try catch

jajaja

Java hace su aparición

utiliza un finally

y pon allí tu programa

...funcionará

Java

Comments

]]>
Sat, 06 Dec 2008 17:03:57 +0100
La clase java.sql.Date de SQL: Ejemplo en DB http://paulonline.nireblog.com/post/2008/11/29/la-clase-javasqldate-de-sql-ejemplo-en-db http://paulonline.nireblog.com/post/2008/11/29/la-clase-javasqldate-de-sql-ejemplo-en-db Dicen que Java es potente

Otros dicen que Java es dificil

bueno, la verdad es que es potente y con pocas líneas de código puedes acceder a propiedades complicadas.

Tenemos lo siguiente:

PROBLEMA:

Parsear el tipo DATE de la base de datos para

sql="INSERT INTO TABLA (FECHA)  VALUES (TO_DATE(?,'DD-MON-RR'))";

SOLUCION:

Calendar c=new Calendar();

long l=c.getTimeInMillis();

Date d=new Date(l);

Entidad o=new Entidad();

o.setFecha(d); // de tipo DATE

 

y lo recoges con

PreparedStatement pre=con.prepareStatement(sql) ;

pre.setDate(1,o.getFecha());

y cambia el SQL a:

sql="INSERT INTO TABLA (FECHA)  VALUES (?)";

 

Comments

]]>
Sat, 29 Nov 2008 00:00:13 +0100
Conexión cliente remoto con OracleXE 10g en Windows http://paulonline.nireblog.com/post/2008/11/13/conexion-cliente-remoto-con-oraclexe-10g-en-windows http://paulonline.nireblog.com/post/2008/11/13/conexion-cliente-remoto-con-oraclexe-10g-en-windows Ir a

http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html

y descargar Oracle Database 10g Express Client OracleXEClient.exe (30,943,220 bytes)

Username: paul_lizardo@hotmail.com

Password:esyD7sJ

Hacer doble click en el instalador (suena muy infantil no?)

next, next, next...bueno instalar, click en Finish

Destination Folder: C:\XEClient\
Port for 'Oracle Services for Microsoft Transaction Server': 2030

Ejecutar RUN SQL Command Line y

conectarse:

CONNECT REPIP/REPIP@OSC2003:1521/XE

Calidad y servicio.

Comments

]]>
Thu, 13 Nov 2008 19:04:03 +0100
Upload con struts-upload.war de Struts1.1 http://paulonline.nireblog.com/post/2008/11/12/upload-con-struts-uploadwar-de-struts11 http://paulonline.nireblog.com/post/2008/11/12/upload-con-struts-uploadwar-de-struts11 Para hacer un upload con struts simplemente el archivo Upload.java tendria que modificarse como lo siguiente:

//File directorio=new File("c:\\archivosPDFsubidos");
//directorio.mkdir();
//String path=directorio+fileName+theForm.getTheText();
String path="c:\\"+fileName+theForm.getTheText();
try {
//retrieve the file data
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream stream = file.getInputStream();
if (!writeFile) {
//only write files out that are less than 1MB
if (file.getFileSize() < (4*1024000)) {

byte[] buffer = new byte[8192];
int bytesRead = 0;
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
baos.write(buffer, 0, bytesRead);
}
data = new String(baos.toByteArray());
}
else {
data = new String("The file is greater than 4MB, " +
" and has not been written to stream." +
" File Size: " + file.getFileSize() + " bytes. This is a" +
" limitation of this particular web application, hard-coded" +
" in org.apache.struts.webapp.upload.UploadAction");
}
}
else {
// Aquí está mi aporte
File f = new File(path);
FileOutputStream out = new FileOutputStream(f);
out.write(file.getFileData());
out.flush();
out.close();

//write the file to the file specified
OutputStream bos = new FileOutputStream(theForm.getFilePath());
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.close();
data = "The file has been written to \"" + theForm.getFilePath() + "\"";
}
//close the stream
stream.close();
}
catch (FileNotFoundException fnfe) {
return null;
}
catch (IOException ioe) {
return null;
}

...probad el código y vereis que hace una carga en la unidad C: (bueno, he sido educado en idioma español)

de nada, a mi tampoco me salía, simplemente dije: si me sale lo coloco en mi blog.

Puedes mejorar reeemplzando los tag html de struts con simple HTML

 

upload.jpg


<%@ page import="org.apache.struts.action.*,
java.util.Iterator,
org.apache.struts.webapp.upload.UploadForm"%>
<%@ page language="java" %>


 



 

Pronto estaré con mayores novedades y aportaciones, por ejemplo hacer todo esto con Struts2 y con ADFBC.

Comments

]]>
Wed, 12 Nov 2008 20:01:30 +0100
Omnisciencia Consultores http://paulonline.nireblog.com/post/2008/10/19/omnisciencia-consultores http://paulonline.nireblog.com/post/2008/10/19/omnisciencia-consultores Soy Consultor y mi email es privera@omnisciencia.com

oraclehq.jpg

Comments

]]>
Sun, 19 Oct 2008 06:23:34 +0100
RMAN Backup de ORACLE11g http://paulonline.nireblog.com/post/2008/10/13/rman-backup-de-oracle11g http://paulonline.nireblog.com/post/2008/10/13/rman-backup-de-oracle11g orahq3.png

--Backup sin utilizar catalog, con una sola línea de código

RMAN> backup database plus archivelog;

oracle.jpg

--Este es un backup utilizando catalog

SQL> CREATE TABLESPACE DATA DATAFILE '/u01/app/oracle/P_01.DBF' SIZE 32M;
SQL> CREATE USER RMAN_USER IDENTIFIED BY RMAN DEFAULT TABLESPACE DATA TEMPORARY TABLESPACE TEMP;
SQL> GRANT CONNECT, RESOURCE, RECOVERY_CATALOG_OWNER TO RMAN_USER;

[oracle@localhost bin]$./rman
RMAN> connect catalog rman_user/rman;
RMAN> create catalog tablespace data;
RMAN> quit;

[oracle@localhost bin]$./rman target / catalog rman_user/rman
RMAN> register database;
RMAN> run
{
allocate channel c1 type disk;
backup database format 'db_%u_%d_%s';
backup format 'log_t%t_s%s_p%p'
(archivelog all);
}
RMAN> QUIT;

-- Para ver los backups

RMAN> list backup;

RMAN> list backup summary;

RMAN> list backup by file;

Los backups físicos pueden ser:

CONSISTENTES. Todos los datafiles tienen el mismo SCN. Para esto, hacer

SHUTDOWN o en estado MOUNT.

INCONSISTENTES. Debe estar en ARCHIVELOG. Para esto, revisar con

SQL> SELECT log_mode FROM V$DATABASE;

SQL> ARCHIVELOG LIST;

Comments

]]>
Mon, 13 Oct 2008 00:33:55 +0100
El mayor valor y la suma total de una lista con Java6 http://paulonline.nireblog.com/post/2008/10/12/el-mayor-valor-y-la-suma-total-de-una-lista-con-java6 http://paulonline.nireblog.com/post/2008/10/12/el-mayor-valor-y-la-suma-total-de-una-lista-con-java6 duke.gif

/*

Estas líneas de código utiliza genéricos, autoboxing, como novedades de las últimas versiones de Java.

Se ve que Java utiliza cada vez menos código.

Se puede utilizar en JEE.

*/

 

import java.util.ArrayList;

import java.util.List;

class Cuentas{

public static void main(String[] args){

List l=new ArrayList()

l.add(.3);

l.add(.4);

double s=.0, m=Double.MIN_VALUE;

for(double d:l){

s+=d;

if(i>max)max=i;

}

System.out.println("Los números son  : "+l);

System.out.println("La suma es          : "+s);

System.out.println("El mayor es         : "+m);

}

}

]]>
Sun, 12 Oct 2008 20:31:48 +0100
Aplicación java.io con Oracle JDeveloper11g en MVC http://paulonline.nireblog.com/post/2008/10/03/aplicacion-javaio-con-oracle-jdeveloper11g-en-mvc http://paulonline.nireblog.com/post/2008/10/03/aplicacion-javaio-con-oracle-jdeveloper11g-en-mvc b5_sdkdownload.gif/*Creamos el Bean*/

package paulonline.bean;

public class Cliente{

private String id="";

private String usuario="";

 /*Getters and Setters*/

}

--------------------------------

/*Creamos la Clase para properties*/

package paulonline.bean

public class Propiedades{

public static final String getPropiedades(){

 /*Retorna el nombre del fichero properties de extensión properties

 que será leído por ResourceBundle según JEE

*/

return "properties";

}

}

------------------------------------

/*Creamos el ArrayList para la lista de users*/

package paulonline.lista;

import java.io.Serializable;

import java.util.ArrayList;

import paulonline.bean.Cliente;

public class ClienteLista extends ArrayList implements Serializable{

public Cliente getListaDeClientes(int x){

return (Cliente) get(x);

}

}

------------------------------------

/*Creamos el archivo que utiliza JAVA.IO*/

package paulonline.data;

import java.io.*;

import java.util.Properties;

import paulonline.bean.*;

import paulonline.lista.ClienteLista;

public class ClienteDato extends Propiedades{

public ClienteDato(){

super();

}

public static ClienteLista getListarClientes(){

ClienteLista lista=new ClienteLista();

try{

File f=new File("/root/jdevhome/mywork/paulonline/public_html/datos/clientes");

FileReader fr=new FileReader(f);

BufferedReader br=new BufferedReader(fr);

String rs=br.readLine();

while(rs!=null){

Cliente c=new Cliente();

c.setId(rs.subString(0,3));

c.setUser(rs.subString(3,50));

lista.add(c);

rs=br.readLine();

}

return lista;

}

catch(IOException){ return lista;  }

catch(Exception){ return lista;  }

}

 

public static boolean getInsertarCliente(Cliente c){

try{

File f=new File("/root/jdevhome/mywork/paulonline/public_html");

FileOutputStream fos=new FileOutputStream(f+"/datos/"+c.getId());

Properties p=new Properties();

p.put("user: "+user);

p.store(fos,c.getUser()) ;

fos.flush();

fos.close();

return true;

}

catch(IOException){ return false; }

}

}

-----------------------------------

/*Este es el Servlet INSERTAR*/

public class InsertarClientesServlet{

private String conforme;

protected void processRequest(request,response){

Cliente c=new Cliente();

c.setId("user");

c.setUser(request.getParameter("usuario"));

ResourceBundle rb=getBundle(ClienteDato.getPropiedades());

this.conforme=rb.getString("conforme");

request.setAtribute("c",c) ;

this.getServletContext().getRequestDispatcher(conforme).forward(request,response);

}

}

-------------------

/*Este es el Servlet LISTAR*/

public class ListarClientesServlet{

private String listaClientes;

/*doGet según el stándar Oracle JDeveloper11g*/

protected void doGet(request,response){

ClienteLista lista=ClienteDato.getListarClientes();

request.setAttribute("c",lista);

ResourceBundle rb=getBundle(ClienteDato.getPropiedades());

  /*Con esto no se escriben datos en duro*/

this.listaClientes=rb.getString("listaClientes");

this.getServletContext().getRequestDispatcher(listaClientes).forward(request,response);

}

}

---------------------------------

/*Página JSF listadeClientes.jsp donde se mostrarán los datos*/

<%@ page language="java"%>

<%@ page import="java.io.*,java.util.*,paulonline.bean.*"%>

 

<%=c.getUser()%>

---------------------------------

/*Fichero de parámetros. Con este fichero las implementaciones se hacen dinámicamente */

properties.properties

conforme=/cualquierpagina.jsp

listaClientes=listadeClientes.jsp

email=paul_lizardo@hotmail.com //para consultas

/*

Implementar con AJAX y componentes JSF, o diversas librerías, por ejemplo Struts FileUpload, y aumentar los campos del fichero, por ejemplo añadir nombres, dirección, edad, RUC.

El fichero puede venir desde COBOL con el nombre de user.DAT, ó user.dat., ó user.cualquierextension

Si se decide utilizar una Base de Datos, en lugar de un File se debe de crear un DataSource y cambiar java.io por java.sql (Connection, ResultSets y Statements), según la estructura MVC (Modelo-Vista-Controlador) de  la presente entrega, que también puede utilizarse como plantilla para aplicaciones complejas DAO y EJB3.0

*/

Comments

]]>
Fri, 03 Oct 2008 02:01:54 +0100
Instalación de Automatic Storage Management ASM de Oracle en Linux Red Hat http://paulonline.nireblog.com/post/2008/09/28/instalacion-de-automatic-storage-management-asm-de-oracle-en-linux-red-hat http://paulonline.nireblog.com/post/2008/09/28/instalacion-de-automatic-storage-management-asm-de-oracle-en-linux-red-hat l0_f_0922oracle-openworld.jpg

Esta es la instalación de ASM en su propio HOME

[root@localhost  ~]# mkdir /u01/asmdisks

[root@localhost  ~]# cd /u01/asmdisks/

//Creamos los raw devices en LINUX

[root@localhost asmdisks]# dd if=/dev/zero of=asm_disk1 bs=1024k count=400

[root@localhost asmdisks]# dd if=/dev/zero of=asm_disk2 bs=1024k count=400

[root@localhost asmdisks]# dd if=/dev/zero of=asm_disk3 bs=1024k count=400

[root@localhost asmdisks]# dd if=/dev/zero of=asm_disk4 bs=1024k count=400

[root@localhost asmdisks]# losetup /dev/loop1 asm_disk1

[root@localhost asmdisks]# losetup /dev/loop2 asm_disk2

[root@localhost asmdisks]# losetup /dev/loop3 asm_disk3

[root@localhost asmdisks]# losetup /dev/loop4 asm_disk4

[root@localhost asmdisks]# raw -qa

[root@localhost asmdisks]# raw /dev/raw/raw1 /dev/loop1

[root@localhost asmdisks]# raw /dev/raw/raw2 /dev/loop2

[root@localhost asmdisks]# raw /dev/raw/raw3 /dev/loop3

[root@localhost asmdisks]# raw /dev/raw/raw4 /dev/loop4

[root@localhost asmdisks]# raw -qa

//Ahora tenemos 4 raw devices que serán usados para crear los ASM disks

/dev/raw/raw1: bound to major 7, minor 1

/dev/raw/raw2: bound to major 7, minor 2

/dev/raw/raw3: bound to major 7, minor 3

/dev/raw/raw4: bound to major 7, minor 4

/*

Ahora creamos una cuenta ASM que será utilizada para crear la instancia de AS. Abrimos otra consola.

*/

[root@localhost  ~]# /usr/sbin/groupadd asmdba

[root@localhost  ~]# useradd oracleasm -g oinstall -G asmdba

[root@localhost  ~]#passwd oracleasm

//password: oracle

[root@localhost  ~]# vi /etc/group/

//poner como oinstall:x:503:oracleasm

[root@localhost  ~]# mkdir -p /u01/app

//damos los permisos

[root@localhost  ~]# chown -R oracle:oinstall /u01/app

[root@localhost  ~]# chmod -R 775 /u01/app

//seteamos los parámetros

[root@localhost  ~]# vi /home/oracleasm/.bash_profile

//ponemos como:

#User specific environment and startup programs

unset PATH; export PATH

unset USERNAME

PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

umask 022

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/asm_1

ORACLE_SID=+ASM

PATH=$ORACLE_HOME/bin:$PATH

export PATH

export ORACLE_BASE ORACLE_HOME ORACLE_SID

[root@localhost  ~]# cd /u01/asmdisks/

[root@localhost asmdisks]# chown oracleasm:asmdba /dev/raw/raw1

[root@localhost asmdisks]# chown oracleasm:asmdba /dev/raw/raw2

[root@localhost asmdisks]# chown oracleasm:asmdba /dev/raw/raw3

[root@localhost asmdisks]# chown oracleasm:asmdba /dev/raw/raw4

[root@localhost asmdisks]# xhost +

[root@localhost asmdisks]# su - oracleasm

[oracleasm@localhost  ~]$ cd /u01/database

[oracleasm@localhost  ~]$ ./runInstaller

...Passed ...

//Click en Advanced Installation y Next

//Inventory Details, Next

//Select Installation Type, poner Enterprise Edition y Next

//Home Details, cambiar OraDb10g_home1 a OraDb10g_asmhome. Next

//Next

//Yes (Opcional)

//Configuration Option , elegir ASM y poner dos veces el password. Next

//Configure ASM, elegir External y seleccionar todos los check boxes. Next

//Privileged Operating System Groups, cambiar oinstall por asmdba. Next

//Install

//Seguir las instrucciones de Execute Configuration scripts. Abrimos ina consola en root, cuando terminamos hacemos click en OK

//En la consola root ejecutamos ps - ef | grep ASM para verificar

[root@localhost asmdisks]# ps - ef | grep ASM

//Ejecutamos sqlplus

[oracleasm@localhost ~]$sqlplus "/ as sysdba";

SQL> SELECT name FROM v$asm_diskgroup;

SQL> SELECT name FROM v$asm_disk;

 

Comments

]]>
Sun, 28 Sep 2008 23:33:21 +0100
Carga Masiva de Datos con Java http://paulonline.nireblog.com/post/2008/09/28/carga-masiva-de-datos-con-java http://paulonline.nireblog.com/post/2008/09/28/carga-masiva-de-datos-con-java Este programa crea un archivo llamado script.sql con 1 000 000 de sentencias INSERT, la cantidad de INSERT es configurable.

 

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.Hashtable;

class CargaMasiva{

public static void main(String[] args){

try{

File f=new File("/u01/app.oracle/product/10.2.0/db_1/script.sql");

FileOutputSteam fos=new FileOutputStream(f);

f.createNewFile();

if(f.canWrite()){

Hashtable ht=new Hashtable();

//Aquí se configura la cantidad de registros INSERT

String[] foo=new String[1000000];

//Este es el objeto que representa la tabla

Customer c=new Customer();

for(int i=0;i

      /*Guarda en el array los inserts. Aquí se puede añadir los registros de   una tabla mediante POO*/

foo[i]=

"INSERT INTO CUSTOMER(CUSTOMER_ID) VALUES('"+i+"');\n";

ht.put(i,foo[i]);

}

c.setX(foo);

//Lee el array y los escribe en el archivo script.sql

for(int i=0;i

byte[] b=foo[i].getBytes();

fos.write(b);

}

}

}

catch(IOException ioe){ ioe.getMessage(); }

}

//Este es el bean que representa la tabla

class Customer(){

private String[] x;

public String[] getX(){

return x;

}

public void setX(String[] _x){

this.x=_x;

return;

}

}

}

/*

Se puede añadir más métodos y variables al Bean, por ejemplo :

public String nombre="";

public int edad=0;

private Date fecha;

Para hacerlo con PL /SQL se debe revisar la librería UTL_FILE, que lee y escribe archivos de PL/SQL y de sistema operativo.

También se puede revisar el método INSERT SELECT de ORACLE. Por ejemplo:

insert into depto80 (select * from employees where department_id=80);

ó

insert into just_names(first,last) (select first_name, last_name from employees)

*/

Comments

]]>
Sun, 28 Sep 2008 20:01:10 +0100
Instalación de Oracle10gR2 en Linux Red Hat Enterprise http://paulonline.nireblog.com/post/2008/09/23/instalacion-de-oracle10gr2-en-linux-red-hat-enterprise http://paulonline.nireblog.com/post/2008/09/23/instalacion-de-oracle10gr2-en-linux-red-hat-enterprise corp_11_411.jpg[root@localhost  ~]# groupdel dba

[root@localhost  ~]# groupdel oper

[root@localhost  ~]# userdel oracle

[root@localhost  ~]# groupdel oinstall

[root@localhost  ~]# /usr/sbin/groupadd dba

[root@localhost  ~]# /usr/sbin/groupadd oper

[root@localhost  ~]# /usr/sbin/groupadd oinstall

[root@localhost  ~]# mkdir -p /u01/app

[root@localhost  ~]# /usr/sbin/useradd -g oinstall -G dba,oper -d /u01/app/ oracle

[root@localhost  ~]# passwd oracle <--aquí le ponemos password 2 veces

[root@localhost  ~]# vi /etc/group   <--aquí añadimos :oracle a oinstall

[root@localhost  ~]# /usr/sbin/usermod -g oinstall -G dba,oper -d /u01/app/ oracle

[root@localhost  ~]# chwon -R oracle:oinstall /u01/app/

[root@localhost  ~]# chmod -R 775 /u01/app

[root@localhost  ~]# xhost +

[root@localhost  ~]# su - oracle

[oracle@localhost  ~]# cd /u01/database/ <--aquí buscamos el instalador

[oracle@localhost database]$ ./runInstaller

...Passed ...se siguen las instrucciones

[oracle@localhost database]$ cd ..

[oracle@localhost u01]$ cd app/oracle/product/10.2.0/db_1/bin

[oracle@localhost bin]$ ./dbca

...Aquí instala la Base de Datos...se siguen las instrucciones

[oracle@localhost db_1]$ cd ./../../../../..

[oracle@localhost app]$ vi .bash_profile

...Aquí se setea ORACLE_HOME, ORACLE_BASE y ORACLE_SID...

export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1/

export ORACLE_BASE=/u01/app/oracle/product/10.2.0/db_1/

export ORACLE_SID=orcl

export PATH=$PATH:$ORACLE_HOME/bin

... En otra consola

[root@localhost ~]# su - oracle

[oracle@localhost ~]$ lsnrctl start;

[oracle@localhost ~]$ sqlplus "/ as sysdba";

SQL>

[oracle@localhost ~]$ cd /u01/app/oracle/product/10.2.0/db_1/bin

[oracle@localhost bin]$ ./rman

RMAN>

 

Para finalizar en el browser escriben:

http://localhost.localdomain:1158/em

Comments

]]>
Tue, 23 Sep 2008 20:45:04 +0100
Teorema de Pitágoras en Java http://paulonline.nireblog.com/post/2008/09/22/teorema-de-pitagoras-en-java http://paulonline.nireblog.com/post/2008/09/22/teorema-de-pitagoras-en-java Aquí un sencillo programa en POO:

/*
Este programa muestra como utilizar arreglos a traves de un bean.
El usuario tiene que ingresar dos valores y el programa
arroja los valores y la hipotenusa.
*/

package matematica;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

class Pitagoras{
//Debemos utilizar el IOException
public static void main(String[] args) throws IOException{
System.out.println("TEOREMA DE PITAGORAS");
//Definimos el array
double[] cateto=new double[2];
//Pedimos los valores por consola
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
for(int i=0;i
System.out.println("Ingrese cateto "+i+" ");
cateto[i]=Double.parseDouble(br.readLine());
}
//Creamos el objeto
Triangulo t=new Triangulo();
//escribimos los catetos
t.setLado(cateto);
//Leemos los catetos
cateto=t.getLado();
//Mostramos los catetos
for(int i=0;i
System.out.println("cateto "+i+" = "+cateto[i]);
}
//Referencia al método que calcula la hipotenusa
double hipotenusa=t.getHipotenusa(cateto[0],cateto[1]);
//mostramos la hipotenusa
System.out.println("La hipotenusa es "+hipotenusa);
}
}

//Este es el bean
class Triangulo{
private double[] lado;
public double[] getLado(){
return lado;
}
public void setLado(double[] _lado){
this.lado=_lado;
}
//Este método es el que calcula la hipotenusa
public double getHipotenusa(double x, double y){
return Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
}
}

También se puede implementar el cálculo para hallar el área y las funciones trigonométricas, añadiéndole métodos al bean. Por ejemplo:

public double getArea(double x, double y){
return (x*y)/2; //Base por altura entre dos
}
public double getTangente(double x, double y){
/*Esto para el ángulo de elevación. Puede haber otras
formas de hallar la tangente a través de los catetos o por medio de
la clase Math.
*/

return (y/x);
}

Se puede asimismo separar el bean de los nuevos métodos creando una nueva clase y asimismo presentarlo por web en una página JSP ó trabajarlo con SWING.

Comments

]]>
Mon, 22 Sep 2008 03:27:49 +0100