• Publicidad

El uso de 'cat'

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Notapor Kiloko » 2007-12-07 12:47 @574

:roll: Después de leer el Tutorial veo que el tutorial y yo, no nos llevamos bien, hice este programa para probar, y sí inserta.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#Conectamos con la BD, si no podemos, ponemos un mensaje de error
my $dbh = DBI->connect("DBI:$driver:$base_datos",$usuario,$clave) || die "\n Error al abrir la base datos Intenta de nuevo: $DBI::errstr\n";
#Decimos que hemos conectado
print "\nSe ha conectado a $base_datos en la BD ES LA OSTIA \n";
#Insertamos datos en la BD
        print "\nInsertamos datos en la BD\n";
               
$resultado = $dbh->do ("insert into $tabla values (100,'Melocotones',1.2);") || warn "Error en inserci¢n en $tabla: $DBI::errstr\n";
#Nos desconectamos de la BD. Mostramos un mensaje si hay algun fallo
$dbh->disconnect || warn "\nFallo al desconectar.\nError: $DBI::errstr\n";
        close (archivo);
#Terminamos
exit;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Hasta ahí todo bien, pero cómo hago cuando quiero insertar un archivo con esta información en la base de datos?

Código: Seleccionar todo
Insert into FINAL_PLV (fecha, idcid, disponibilidad, latencia, perdida_paq, jitter_avg, disponibilidad_remoto, throughput, clase) values(to_date('20071203000000','YYYYMMDDHH24MISS'),76473,1,17.9,0,1,1,0,2);


¿Tendría que abrir el archivo? ¿separar los campos y meterlos como variables, después hacer un while, para los demás renglones?? ¿no existe algo así como un open ( X.dat) y un insert X.dat...? :P
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Publicidad

Notapor explorer » 2007-12-07 13:24 @600

Lo que quieres es ejecutar sentencias SQL directamente.

Hay dos formas que se me ocurren:
  1. Volcar todo el fichero al sistema gestor de la base de datos:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using bash Syntax Highlighting
    cat X.dat | motor_base_de_datos
    Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

    Aquí no interviene Perl para nada.
  2. Si los registros se pueden leer bien (se vé que terminan con punto y coma, uno por línea), puedes leer cada línea completa y dársela al do(). No tienes que hacer una interpretación de la línea, si no que la ejecute directamente.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Kiloko » 2007-12-07 13:57 @622

ok,

pero ¿en el primer caso el equipo tendría que tener instalado mysql? cierto, y suponiendo que lo tuviera sería algo así. Un archivo I.ksh:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
#!/usr/bin/ksh
$HOME/.profile
AYER=`/root/kiloko/bin/perl fecha.pl`
echo $AYER
sqlplus load/servidor203007@load
@$AYER.dat
echo termino
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor explorer » 2007-12-07 14:32 @647

Pues eso ya no lo sé... creo que cada motor de base de datos tiene una forma de ejecutar código SQL externo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Anterior

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados