Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ^Tifa^

#701
Perfecto lo de Hello Kitty chico  ;)

podria peticionar una, con ese logo de Hello Kitty (Es que soy fanatica  ;D ) el logo del hacker en la parte de la espalda y obviar el fuego de la camisa  :rolleyes: para modelo femenino digo.. hasta se podria cortar las mangas, hacer una especie de escote en forma de cuello V y rotar la imagen de Hello Kitty un pelin mas para debajo para poder hacer el escote  :rolleyes:

vaya imaginacion cargo (Es que no veo un hombre con una camiseta con el logo de Hello Kitty)
#702
No es que esten feas, hay personal (sobretodo los jovenes menores de 20 años que son la mayoria que componen este foro) que les gusta este tipo de modas, de hecho si yo tuviese 12 años menos las encontrase super interesante este modelo. Y ciertamente posee un diseno juvenil, rebelde y de respeto entre comunidades jovenes.

Ahora, habemos otr@s  personas un pelin mayores, que tenemos gustos un poco mas formal. Observo ese diseno para un personal joven masculino, y el personal femenino?  :rolleyes: hay chicas aca que podrian sentirse interesadas tambien, haz pensado en algun diseno exclusivo para el ambito femenino?

#703
Lo mas delicado que tiene un servidor hosting (despues de las especificaciones de Hardware) es la Base de Datos.

No es el lenguaje que se utilize en una web para conectarse y trabajar a la DB, las partes de las consultas que es la parte basica que compone una DB efectivamente en un tutorial o Google te sirve y te sobra. Ahora, que sepas hacer lo basico de consultas SQL no implica que conozcas o manejes una Base de Datos en especifico (Que aqui es donde cae el error de muchos, que asumen que se comen una base de datos solamente por saber hacer SELECT, UPDATE, DELETE, INSERT dentro de las tablas).

Los motores de base de datos varian unos con otros en cuanto a su forma de desempenarse, y optimizar un motor de una DB a un nivel eficiente implica muchas cosas que el amiguito Google no te expone con exactitud. Implica Tunning de las consultas (Que no es solo saber hacer select, insert, delete, update), normalizar las tablas ya existentes, verificar mediante analisis que porcion de ram podras utilizar para la cache de indices, cache de motor de almacenamiento, cache de conexiones, que conviene y que no conviene tanto para el dia de hoy como a largo plazo. Que no piense la gente que a los DBA se les paga un salario superior a la mayoria de posiciones en Tecnologia por saber hacer consultas en un motor, sino por saber implementar el analisis anterior + saber restaurar a tiempo las cosas ante cualquier falla.
#704
Scripting / Re: Shell Script y MySql
10 Noviembre 2009, 14:39 PM
Me alegro por ti cielo  ;) 

Continua aprendiendo  ;-)
#705
No esta mal... solo que la ultima vez que me coloque una camiseta de este estilo tenia como 17 años, escuchaba metal y me maquillaba de negro  :-X

Si consideran la de Hello Kitty con la katana, me apunto.
#706
Pero corazon, solo tienes que Filtrar la condicion como tal.

Código (perl) [Seleccionar]


for ( my $mes = 1; $mes <= 12; $mes++ ) {
  for ( my $dia = 1; $dia <= 31; $dia++ ) {

        if ( $mes <= 9  ) {
if ( $dia <= 9 ) {
              print STDOUT "0000-" . '0' . $mes . "-" . "0" .   $dia . "\n";
} else {
  print STDOUT "0000-" . '0' . $mes . "-" .   $dia . "\n";
    }
             
        } else {
if ( $dia <= 9 ) {
print STDOUT "0000-" .  $mes . "-0" . $dia . "\n";
} else {
print STDOUT "0000-" . $mes . "-" . $dia . "\n";

}
}

}
};



Imprime esto:

Citar

0000-03-13
0000-03-14
0000-03-15
0000-03-16
0000-03-17
0000-03-18
0000-03-19
0000-03-20
0000-03-21
0000-03-22
0000-03-23
0000-03-24
0000-03-25
0000-03-26
0000-03-27
0000-03-28
0000-03-29
0000-03-30
0000-03-31
0000-04-01
0000-04-02
0000-04-03
0000-04-04
0000-04-05
0000-04-06

0000-12-01
0000-12-02
0000-12-03
0000-12-04
0000-12-05
0000-12-06
0000-12-07
0000-12-08
0000-12-09
0000-12-10
0000-12-11
0000-12-12
0000-12-13
0000-12-14
0000-12-15
0000-12-16
0000-12-17
0000-12-18
0000-12-19
0000-12-20
0000-12-21
0000-12-22
0000-12-23
0000-12-24
0000-12-25
0000-12-26
0000-12-27
0000-12-28
0000-12-29
0000-12-30
0000-12-31

PD: Tuve que cortar la impresion porque es muy larga, pero te aseguro que antes del mes 9 y dia 9 salen asi:

0000-09-09

Y si es superior al mes 9 y dia 9 sale

0000-10-10

#707
Scripting / Re: Shell Script y MySql
6 Noviembre 2009, 19:07 PM
Disculpa cielo por la tardanza  :rolleyes:  es que pues... no suelo visitar mucho este subforo por ende no me entero de las actualizaciones de los temas  ;)

Citarpero ahora no me acepta las variables dentro de las llamadas a las bases de datos de mysql
xDDD

Literalmente no logro entender a que te refieres, podrias postear la parte del codigo donde te da el fallo y que es lo que intentas llamar de este  ;)

Todo es manejar de forma intermedia la sintaxis de Bash y conocer pelin sobre consultas SQL en MySQL, no es tan complicado como parece corazon  :-*
#708
Bases de Datos / Re: [DUDA]PL/SQL en v$session
6 Noviembre 2009, 15:34 PM
Hola -Ramc-

Bueno, por tu requerimiento he retornado a mi practica con PL/SQL en Oracle (Que jure que jamas volveria a tirar 1 codigo en PL de Oracle) pero bueno  :rolleyes: deseo intentar ayudarte y darte ideas para que llegues a tu objetivo.

Quedamos en que efectivamente dentro del esquema SYS no puedes crear TRIGGERS ni a vistas ni a tablas, movilizar tablas o vistas de la metadata de SYS a otro esquema... no es recomendable (Aunque funcione, esto no es lo ideal). Asi que te sugeri crear en cada esquema de usuario 1 TRIGGER que solicite esos datos que te interesan en V$SESSION y los guarde en una tabla comun. (Es mas trabajoso, sobretodo si tienes miles de tablas, pero esto te dara una idea).

Mira el escenario que he realizado con el usuario PEPE, otorgue permisos de SELECT a V_$SESSION para PEPE asi con su TRIGGER puedo solicitar info de este usuario y irla guardando en una tabla, por ejemplo.

Código (sql) [Seleccionar]


set serveroutput on
declare
numero number;
usuario char(20);
begin
select username into usuario from v$session where username is not null;
select command into numero from v$session where user = usuario and command != 0;
dbms_output.put_line(numero||' '||usuario);
end;
/



Si haces lo anterior veras que obtuve en tiempo real el valor de COMMAND y USUARIO que ejecuta la accion. Ahora chequea esto:

Código (sql) [Seleccionar]


SQL> describe ejemplo;
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
NUMERO                                             NUMBER(38)
USUARIO                                            CHAR(20)

CREATE OR REPLACE TRIGGER TRIGO
BEFORE INSERT OR DELETE OR UPDATE ON EJEMPLO
FOR EACH ROW
DECLARE
numero NUMBER;
palabra CHAR(20);
BEGIN

IF INSERTING THEN
 SELECT USERNAME INTO palabra FROM v$session WHERE USERNAME IS NOT NULL;
 SELECT COMMAND INTO numero FROM v$session WHERE USER = palabra AND COMMAND != 0;
 :new.NUMERO := numero;
 :new.USUARIO := palabra;
ELSIF UPDATING THEN
 SELECT USERNAME INTO palabra FROM v$session WHERE USERNAME IS NOT NULL;
 SELECT COMMAND INTO numero FROM v$session WHERE USER = palabra AND COMMAND != 0;
 :new.NUMERO := numero;
 :new.USUARIO := palabra;
ELSE
 :new.NUMERO := 0;
 :new.USUARIO := NULL;
 DELETE FROM ejemplo WHERE NUMERO = 0 AND USUARIO IS NULL;
 COMMIT;
END IF;

END TRIGO;
/

SQL> select * from ejemplo;

no rows selected

SQL> insert into ejemplo values(1,'Mercado');

1 row created.

SQL> select * from ejemplo;

   NUMERO USUARIO
---------- --------------------
        3 PEPE

SQL> insert into ejemplo values(2,'Marta');

1 row created.

SQL> select * from ejemplo;

   NUMERO USUARIO
---------- --------------------
        3 PEPE
        3 PEPE



Utilize como te dije 1 TRIGGER anidado por cada tabla, y asi se guarda la accion y el usuario en una tercera tabla  ;)  para la fecha actual del comando ejecutado llama al campo LOGON_TIME de V$SESSION dentro del TRIGGER.

Ojala te pueda servir de guia para expandir lo que andas solicitando y puedas llegar a un objetivo final  :P
#709
Gracias por el apoyo corazones  :-*   :-*

Pero si se decidio que Napk fuese moderador de dicho subforo, sus razones tendran y hay que respetar eso  ;)

Me alegra mucho que finalmente colocasen un subforo de esta indole, es bastante seguro que me pasare mucho por alli  ::) sobretodo por la demanda que estan teniendo las base de datos en el mundo tecnologico.
#710
Bases de Datos / Re: [DUDA]PL/SQL en v$session
6 Noviembre 2009, 04:52 AM
Cielo.

CitarO sea, necesito sacar el campo command cada vez que se modifique y guardarlo en otra tabla con la fecha actual y el usuario que lo hizo, pero, no puedo ponerle el trigger a v$session, ni a la vista creada de el.

V$SESSION es un Sinonimo de V_$SESSION  ;) te he estado buscando otras vueltas al asunto porque como te he venido diciendo y como te dcontinuare diciendo (NO ES POSIBLE CREAR TRIGGERS EN OBJETOS PERTENECIENTES A SYS) Por ende estas tratando de hacer algo que literalmente es imposible.

La unica solucion que veo a lo que quieres hacer... y no te lo recomendaria para nada creeme. Es movilizar V_$SESSION fuera del esquema de SYS (Pero esto es hackear el funcionamiento del motor como tal, y no puedo prevenirte de que problemas puede esto presentarte... y olvidate del soporte). Por lo tanto no puedo guiarte en este proceso, sobretodo porque tendria que buscar la TABLA principal a la cual hace referencia la vista sección, dicha tabla puede ser 1 como puede ser varios Joines de varias tablas, para que entonces mudes esto a otro esquema que no sea SYS para poder crear tu TRIGGER y que sea soportable por el motor.

Obviando lo anterior,  por lo peligroso que resulta. Podrias realizar lo siguiente tambien (como opcion)

1) Crea 1 tabla de uso general (con permisos INSERT) que tenga los campos requeridos he importantes por ti (usuario, fecha, comando) esos campos se iran llenando en base a una solicitud que haras a la vista V$SESSION.

2) Crea 1 TRIGGER con tipo AFTER LOGON que tome datos del usuario al este iniciar sección y los mande a dicha tabla.

3)  Crea 1 TRIGGER anidado (after insert, after delete, after update, etc) por cada tabla de usuario donde al realizar una consulta SQL a una tabla esta solicite el campo correspondiente a la vista SESSION y rellene o actualize la tabla donde se van guardando todas las acciones.

Por ejemplo, imaginate que tengo un TRIGGER :

create trigger fulanito, before insert on tablita or after update on tablita for each row begin, if update select COMMAND into variable from v$session; elsif insert select COMMAND into variable1 from v$session;

Se que la sintaxis anterior esta erronea... la hice para ejemplificarte, bien tenemos 1 variable que capta el valor correspondiente a la consulta ejercida en dicha tabla digamos que si el usuario realizo un INSERT en la tabla, la variable que solicita y guarda el registro del campo COMMAND de V$session digamos que el valor es 2, bueno tu TRIGGER tiene que verificar despues de realizar todas esas comparaciones cual accion finalmente se realizo en la tabla, ejemplo:

if ( variable == 2 ); then
update tabla set comando = variable where user = show_user();
elsif (variable == 3) then
update tabla set comando = variable where user = show_user();

Espero que sea mas o menos entendible la idea.

Es una tarea mas pesada, pero menos riesgosa que movilizar objetos de SYS a un esquema individual (Aunque este paso sea mas corto) No es algo seguro.

PD: Se que no me explico muy bien, si tienes alguna duda o si te surge alguna idea compartela :)