Para reinicar Gnome-shell, por ejemplo cuando alguna vez se queda colgado o se dispara el consumo de memoria.
1) Pulsamos Alt F2 simultaneamente.
2) Escribimos r y le damos al enter.
Mantendrá todos los programas abiertos, por lo que es más cómodo que cerrar ya brir la sesión o matar el servidor X ( control alt retroceso simultaneamente).
Md5 en oracle
Para calcular md5 en Oracle podemos crear la siguiente función:
create or replace
Ejemplo de uso:
078c007bd92ddec308ae2f5115c1775d
Si nuestra idea es almacenarlo como raw:
Ejemplo de uso (crear tabla, crear campo, insertar, consultar):
http://www.pilcrow.nl/2010/12/md5-function-in-oracle
create or replace
FUNCTION md5hash (str IN VARCHAR2)
RETURN VARCHAR2
IS v_checksum VARCHAR2(32);
BEGIN
v_checksum := LOWER( RAWTOHEX( UTL_RAW.CAST_TO_RAW( sys.dbms_obfuscation_toolkit.md5(input_string => str) ) ) );
RETURN v_checksum;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END md5hash;
Ejemplo de uso:
select md5hash('diego') from dual;Resultado:
078c007bd92ddec308ae2f5115c1775d
Si nuestra idea es almacenarlo como raw:
create or replace
FUNCTION md5raw (str IN VARCHAR2)
RETURN RAW
IS v_checksum VARCHAR2(32);
BEGIN
v_checksum := UTL_RAW.CAST_TO_RAW( sys.dbms_obfuscation_toolkit.md5(input_string => str) ) ;
RETURN v_checksum;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END md5raw;
Ejemplo de uso (crear tabla, crear campo, insertar, consultar):
drop table tmp_die_md5;Fuente:
create table tmp_die_md5(md5 raw(16) );
insert into tmp_die_md5 select md5raw('Diego') from dual;
select * from tmp_die_md5 where md5= '4FB845C67D91BCB3178498FC6FE1FEDC' ;
select * from tmp_die_md5 where md5= ( md5raw('Diego'));
http://www.pilcrow.nl/2010/12/md5-function-in-oracle
gnome-terminal : no arranca
Si el terminal de gnome (gnome-terminal) no funciona, y al ejecutarlo desde otra consola obtenemos el siguiente error:
> gnome-terminalEjecutamos lo siguiente:
Falló en GConf: No se pudo contactar con el servidor de configuración: Error de D-Bus: El demonio de GConf se está apagando en este momento
killall gconfd-2
Oracle obtener fecha de creación de una tabla
Para obtener cuando se creó una tabla usaremos la siguiente consulta:
select object_name, created from user_objectsPara obtener todas las fechas de creación de todas las tablas del usuario:
where object_name = 'NOMBRE_TABLA'
AND object_type = 'TABLE';
select object_name, created from user_objects
where object_name in (select table_name from user_tables )
AND object_type = 'TABLE'
order by created desc;
BASH : utilizar echo con saltos de línea
Para poder insertar saltos de línea con el comando echo en linux se usa la siguiente sintaxis :
echo -e "\n linea 1 \n linea 2 \n" > salida.txtSe usa el -e y el salto de línea se reprenta con \n, y todo va entrecomillado.
TVEenLinux : la television en Opensuse
Para ver la televisión
0) AÑadimos el repositorio de packman para el mplayer:
sudo zypper ar -f http://packman.inode.at/suse/openSUSE_12.2/ repo-packman1) Instalamos las dependencias:
sudo zypper in mplayer rtmpdump curl
2) rtmpdump no está en los repositorio habituales, usamos :
http://software.opensuse.org/package/rtmpdump?search_term=rtmpdump
3) Descargar el archivo de:
wget http://www.tvenlinux.com/TVenLinux.sh4) Darle permisos de ejecución:
chmod u+x TVenLinux.sh
Más información en :http://www.tvenlinux.com/
HP obtener el serial number en linux (Suse)
Para obtener el serial numer de productos HP en linux mediante línea de comandos:
Para el servidor (en Suse) :
sudo dmidecode | egrep -i "serial|product"
Para una cabina de discos y la controladora:
hpacucli ctrl all show
ORACLE: ejecutar procedimiento y paquetes con el usuario actual
Si creamos un procedimiento o paquete con un usuario (UsuarioDueno), y le damos permisos de ejecución a otros (UsuarioAutorizado), el procedimiento se ejecuta por defecto como si lo ejecutase el UsuarioDueño.
Ej, supongamos que tenemos un procedimiento que cuenta las tablas del usuario ( select count(*) from user_tables ) y nos devuelve un número:
Y le damos permisos de ejecucion a UsuarioAutorizado:
Si ejecutamos el procedimiento:
En Oracle, hay dos clausulas para controlar el comportamiento:
AUTHID CURRENT_USER : ejecutar el paquete/función como si fueses el usuario que lo lanza.
AUTHID DEFINER (valor por defecto): ejecutar el procedimiento con los permisos del creador de la función.
Nosotros en este caso tenemos que decir que se ejecute como AUTHID CURRENT_USER. Para ello definimos de nuevo la función, añadiendo:
Si estamos con un paquete, hacemos lo mismo y lo definimos justo antes del "as":
Ej, supongamos que tenemos un procedimiento que cuenta las tablas del usuario ( select count(*) from user_tables ) y nos devuelve un número:
create or replace function cuenta return integer is
salida integer;
begin
execute immediate 'select count(*) from user_tables' into salida;
return salida;
end;
/
Y le damos permisos de ejecucion a UsuarioAutorizado:
grant execute on cuenta to UsuarioAutorizado;
Si ejecutamos el procedimiento:
set serveroutput on;Tanto si lo hacemos como UsuarioDueno como UsuarioAutorizado nos saldrá el mismo número de tablas. Esto es a que siempre se accede a UsuarioDueno.user_tables, cuando lo que en realidad queremos es que se acceda a UsuarioAutorizado, que es nuestro usuario actual (current user) y el usuario que está ejecutando.
declare
tablas integer;
begin
tablas := cuenta();
dbms_output.put_line(tablas);
end;
/
En Oracle, hay dos clausulas para controlar el comportamiento:
AUTHID CURRENT_USER : ejecutar el paquete/función como si fueses el usuario que lo lanza.
AUTHID DEFINER (valor por defecto): ejecutar el procedimiento con los permisos del creador de la función.
Nosotros en este caso tenemos que decir que se ejecute como AUTHID CURRENT_USER. Para ello definimos de nuevo la función, añadiendo:
create or replace function cuenta return integer AUTHID CURRENT_USER is
salida integer;
begin
execute immediate 'select count(*) from user_tables' into salida;
return salida;
end;
/
Si estamos con un paquete, hacemos lo mismo y lo definimos justo antes del "as":
create or replace package contador AUTHID CURRENT_USER asCon esto conseguirmos que un procedimiento se ejecute con otro usuario, el usuario actual, el que ejecuta programa.
FUNCTION cuenta RETURN integer;
end contador
/
Gnome term : cambiar título de la ventana dinámicamente
Para cambiar dinámicamente el título del teminal de gnome, ejecutaremos el siguiente comando:
xtermset -title 'Nuevo titulo'Este comando también permite modificar otras propiedades como el color de la letra, el fondo....
Linux: refrescar la caché de fuentes
Para refrescar la lista de fuentes del sistema ejecutamos
fc-cache -v -f
fc-cache -v -f
Suscribirse a:
Entradas (Atom)
-
Está es un pequeño tutorial / guia que explica cómo crear un applet en Netbeans ( corriendo en Linux Opensuse). Para programar un applet en ...
-
Para poder insertar saltos de línea con el comando echo en linux se usa la siguiente sintaxis : echo -e "\n linea 1 \n linea 2 \n...
-
Para obtener una lista con los objetos bloqueados ejecucutados: select substr(a.os_user_name,1,8) "OS User" , substr(b.object_na...