domingo, 30 de octubre de 2011

Desinstalar Oracle Data Base Enterprise Edition 10g (Windows)

Ventana desinstalación en curso

Punto de partida:
  • Oracle Database 10.2.0.1 Enterprise Edition
  • Microsoft Windows XP 32bits SP2

Para desinstalar Oracle 10g realizaremos:
1.  Desinstalación con Oracle Universal Installer.
Ejecutar Universal Installer que se encontrará en: 
Inicio—>Programas—>OraDb10g_home1—>Oracle Installation Products
Seguir los pasos de desinstalación.
2.  Eliminar claves del registro de Windows que se llamen «Oracle», excepto una llamada: «Microsoft ODBC for Oracle».
Inicio—>Ejecutar
Escribir: regedit
Una vez en la ventana del registro, Edición—>Buscar
Buscar las claves que contengan la palabra «Oracle».
3.  Eliminar carpetas después de reiniciar.
Reiniciar
Eliminar las carpetas donde estaba instalado Oracle.

A continuación el vídeo donde se realiza la desinstalación.

miércoles, 12 de octubre de 2011

Capturar pantalla en MAC

Captura de pantalla


Para obtener una captura de la pantalla completa
cmd+shift+3

Para permitirnos seleccionar el área a capturar

cmd+shift+4
Y el cursor nos cambia a una cruz con la que seleccionaremos el área deseada.

Para capturar una ventana específica

cmd+shift+4+barraespaciadora
Y el cursor nos cambia a una cámara fotográfica con la que seleccionamos la ventana a capturar.

Si has realizado la combinación de teclas y no deseas capturar, presionas ESC y se cancela.


Una vez capturada la imagen, automáticamente tendremos en el escritorio el archivo de imagen PNG. Si quieres cambiar la ubicación en la que se guardan por defecto las imágenes, una forma de hacerlo es escribiendo en la terminal:


defaults write com.apple.screencapture location <dirección de la carpeta>

Por ejemplo: 

defaults write com.apple.screencapture location ~/Pictures

Y si quieres cambiar el formato en el que se guardan de PNG al tipo BMP, GIF, TIFF, PDF, JPG, JPEG.

defaults write com.apple.screencapture type <tipo>

Por ejemplo:

defaults write com.apple.screencapture type PDF



Se ha realizado con:
—Mac OS X 10.12.2

domingo, 24 de julio de 2011

Borrar nombre de usuario del login Skype

Al iniciar sesión en Skype, nuestro nombre de usuario queda en la lista «Nombre de usuario». Es decir, que cuando se abre Skype, antes de iniciar sesión, en el cuadro donde se introduce el nombre de usuario de Skype, sale un listado de las cuentas que se han utilizado, y queremos quitar uno o varios nombres de usuario de esa lista.
Ventana de login de Skype
  • Windows
Inicio—>Ejecutar
Escribimos: %appdata%\skype

En la ventana que se abrirá, eliminamos la carpeta que tenga el nombre de la cuenta que deseamos quitar del listado del login de skype.
Probado en Windows XP SP3


  • Mac
Previamente cerrar Skype. Tener en cuenta mayúsculas y minúsculas en la ruta.

Sin terminal:

Abrimos el Finder
—>Macintosh HD
——>Usuarios
———>NombreDeNuestroUsuario
————>Librería
—————>Application Support
——————>Skype

Si no encuentras una de las carpetas prueba a ir al menú «Ir—>Ir a la carpeta» en el Finder; y escribir:
~/Library/Application Support/Skype
Finalmente eliminamos la carpeta que tenga el nombre del usuario de Skype que deseamos quitar del listado del login.

Desde un terminal:

rm -rf $HOME/Library/Application\ Support/Skype/usuarioSkype

Probado en Mac OS X 10.6.8


  • Ubuntu
Desde terminal:

Escribimos la siguiente línea, reemplazando por el correspondiente nombre de usuario de Skype que se desea borrar.

rm -r /home/$USER/.Skype/UsuarioSkype

Sin terminal:

Lugares
—>carpeta personal (Sistema de ficheros—>home—>usurioUbuntu)
——>.Skype (para ver ésta carpeta; menú ver — mostrar los archivos ocultos)
Eliminamos la carpeta que corresponda con el nombre de usuario de Skype a borrar.

Probado en Ubuntu 10.10


  • Android

Lo primero es ir a Ajustes, y buscar la sección de Aplicaciones, suele estar en la sección General.

Buscamos a Skype entre todas las aplicaciones.

Y finalmente procedemos a limpiar los datos. Esto borrará los datos de todas las cuentas, no solo de una en específico.


Y con estos pasos quitamos el nombre de usuario de Skype de la ventana de login (inicio de sesión).

martes, 19 de julio de 2011

Error al activar autotrace

SP2-0611


Al intentar activar desde sqlplus el informe de estadísticas da los mensajes siguiente.


SQL> set autotrace on
SP2-0618: No se ha podido encontrar el identificador de sesión. Compruebe si el rol PLUSTRACE está a
SP2-0611: Error al activar el informe STATISTICS

En otras ocaciones algo similar
SP2-0613: Unable to verify PLAN_TABLE format or existence
SP2-0611: Error enabling EXPLAIN report

Los pasos a seguir son 3:

1. Ejecutar el script $ORACLE_HOME/sqlplus/admin/plustrce.sql como usuario SYS
2. Ejecurar el script $ORACLE_HOME/rdbms/admin/utlxplan.sql como el user que ejecuta el autotrace
3. Otorgar el privilegio PLUSTRACE al user que ejecuta el autotrace.

Ejemplo:

1.*
conn sys/contraseña@orcl as sysdba
start %ORACLE_HOME%/sqlplus/admin/plustrce.sql

2.
conn hr/hr@orcl
start %ORACLE_HOME%/rdbms/admin/utlxplan.sql

3.
conn sys/contraseña@orcl as sysdba
grant plustrace to hr;


¡Listo! Al volver a iniciar una sesión con el usuario HR, hacer un «set autotrace on» y no saldrá el error.

* Al ejecutar los scripts es posible ver los mensajes sobre lo que realiza. Es normal por ejemplo que dé error al intentar eliminar un rol que no existe, posteriormente se ve que lo crea.

Realizado en:
—Windows XP
—Oracle 10.2.0.1
ORACLE_HOME es una variable de entorno que contiene la ruta del HOME de Oracle. Ej. C:\Oracle\product\10.2\db_1

sábado, 16 de julio de 2011

Activar/desactivar disparadores Oracle

Si queremos activar o desactivar todos los triggers asociados a las tablas de un esquema, tendríamos que programarlo. Un ejemplo de ello es el post sobre «Activar/desactivar todos los triggers de todas la tablas».

Para activar o desactivar un trigger, necesitamos conocer su nombre, además, tener el privilegio adecuado:

—Si es nuestro (el usuario con el que iniciamos sesión): CREATE TRIGGER, lleva implícito el poder eliminar, modificar código y estado de nuestros disparadores.
—No es nuestro trigger: necesitamos ALTER ANY TRIGGER.
—Si es un trigger sobre base de datos ADMINISTER DATABASE TRIGGER.

Por ejemplo:
alter trigger hr.secure_employees disable; 
alter trigger hr.secure_employees enable;

«Si utilizamos una herramienta gráfica como SQL Developer, esta tarea se puede hacer como se indica en la imagen.»
Si queremos ver su estado podemos consultarlo:
select   statusfrom     all_triggerswhere  trigger_name='SECURE_EMPLOYEES';
Si queremos desactivar/activarlos todos los triggers de una tabla:
alter table hr.employees enable all triggers; 
alter table hr.employees disable all triggers;

«Si utilizas SQL Developer, se puede realizar la activación/desactivación de todos los triggers como se indica en la imagen.»
Otros enlaces:
Consultar información sobre los disparadores.
Mas información en Oracle: enabling and disabling triggers.

Información de los disparadores. Oracle.

Si utilizas SQL Developer simplemente puedes ir a la pestaña "Código"
«Si utilizas SQL Developer simplemente puedes ir a la pestaña "Código"»

Para consultar información de los disparadores (triggers), utilizamos vistas del diccionario de datos como:

USER_TRIGGERS trigger pertenecientes al esquema del usuario actual.
ALL_TRIGGERS triggers sobre tablas accesibles por el usuario actual. (Si el usuario posee el privilegio CREATE ANY TRIGGER podrá ver todos los triggers de la base de datos.)
DBA_TRIGGERS todos los disparadores de la base de datos.

Tienen las mismas columnas, excepto USER_TRIGGERS la columna «owner».

Al describir por ejemplo ALL_TRIGGERS; columnas que nos daran información como: propietario, nombre del disparador, tipo, evento, propietario de la tabla, nombre de la tabla/vista, tipo de objeto base (tabla/vista), estado (enabled, disabled), código, etc.
Salida de: desc all_triggers

Solo tenemos que realizar la consulta de nuestro interes, por ejemplo:
Si estamos conectados con el usuario HR, y queremos ver los triggers que tienen las tablas pertenecientes al usuario HR (nuestro usuario); la siguiente select muestra el nombre del trigger y el propietario de éste (que sin permisos no se podría borrar dicho trigger al no pertenecernos, aunque este sobre nuestra tabla).
select   owner,trigger_name,table_name  
from    all_triggers 
where  table_owner='HR';
OWNER
-----  
TRIGGER_NAME
------------------  
TABLE_NAME
---------------
HR
SECURE_EMPLOYEES
EMPLOYEES
HR
UPDATE_JOB_HISTORY
EMPLOYEES
JP
TRIJP
EMPLOYEES
HR
TRIHR
EMPLOYEES

Si queremos ver el código del trigger, tenemos el cuerpo -solo- (trigger_body) en las vistas mencionadas; pero mejor aún si lo consultamos en ALL_SOURCE (similares: USER_SOURCE, DBA_SOURCE), donde está todo el código, no solo el cuerpo (además código de procedimientos, funciones, paquetes, disparadores).
select   text 
from    all_source 
where  name='SECURE_EMPLOYEES'  
      and owner='HR';
TEXT
------------------------------------------------------
TRIGGER secure_employees
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
secure_dml;
END secure_employees;


Otros enlaces:
Web Oracle. Vistas: user_triggers, all_triggers, dba_triggers y otras más.

lunes, 27 de junio de 2011

Consultar qué tablas pertenecen a un usuario en Oracle

Vista de SQL Developer en el que muestra las tablas de HR
«Vista de SQL Developer en el que muestra las tablas de HR»

Podríamos decirlo de otro modo: ¿Cómo conocer qué tablas tiene un esquema? Recordar que usuario y esquema en Oracle van asociados. Usuario es el propietario y esquema es la agrupación lógica de los objetos pertenecientes a un usuario. Tienen el mismo nombre. Suelo decir que esquema es el «cajón» donde están los objetos de un usuario.

Por ejemplo: conectados como el usuario HR, la siguiente consulta nos muestra el nombre de las tablas del esquema HR:
select    table_name
from     user_tables;
TABLE_NAME
------------------------------
COUNTRIES
DEPARTMENTS
EMPLOYEES
JOBS
JOB_HISTORY
LOCATIONS
REGIONS

Si queremos ver las tablas de un esquema distinto, lo hacemos sobre ALL_TABLES y condicionamos para el propietario que deseemos. Necesitaremos tener acceso a todas las tablas para poder verlas (privilegio SELECT ANY TABLE), o permiso sobre la tabla en cuestión y solo veremos esas tablas.
select   table_name
from    ALL_TABLES
where  owner='HR';
En la vista ALL_TABLES tendremos la información de las tablas pertenecientes al usuario con el que hemos iniciado sesión y de las tablas sobre las que tiene algún permiso explícito. Para usar DBA_TABLES tendremos que tener un rol DBA y se podrá ver la descripción de todas la tablas de la base de datos.

viernes, 24 de junio de 2011

Oracle: Precedencia de operadores.

Tanto en el lenguaje SQL, como en el lenguaje PLSQL. La precedencia de operadores es la siguiente:

Tabla: operador, operación

Lo aconsejable es utilizar paréntesis para ver explícitamente lo que se quiere y facilite el entender.

Para más información en: Oracle

jueves, 23 de junio de 2011

Ver select de una vista en sqlplus

Si tenemos alguna vista de la cual queremos conocer la SELECT que tiene, entonces consultamos en alguna de las vistas del diccionario de datos como:
—USER_VIEWS (información sobre vistas del usuario)
—ALL_VIEWS (información sobre todas las vistas a las que se tiene permiso)
—DBA_VIEWS (información sobre todas las vistas de la base de datos).

Podemos describir por ejemplo ALL_VIEWS por ver la información que nos da.
respuesta al mandato desc

Lo que nosotros queremos es saber el código fuente (la SELECT) que tiene la vista. Así que consultamos el campo «TEXT», condicionando para la vista de nuestro interés y de quién. Recordar escribir en mayúscula el nombre de la vista y el nombre del propietario.
select    text 
from     all_views 
where   view_name='EMP_DETAILS_VIEW' 
     and  owner='HR';
Si no se visualiza toda la select de la vista, escribir: 
set long 2000
Esto nos mostrará 2000 caracteres de la columna que es de tipo «long». Si queremos ver más caracteres, ponemos una cifra mayor.

Salida de la select de ejemplo

domingo, 8 de mayo de 2011

Modificar estado constraint en Oracle

Diagrama sentencia ALTER TABLE

Con modificar una constraint no nos referimos a cambiarle el tipo, condición, columnas, etc. (para ello eliminarla y volver a crearla), nos referimos a desactivar, activar u obligar UNA constraint (restricción) de UNA tabla, en una base de datos Oracle.

Utilizaremos la  instrucción ALTER TABLE. Existe diferente maneras de escribirlo dependiendo el tipo de constraint (como se puede apreciar en la imagen), de un modo general como está a continuación:
  • Una constraint desactivada (disabled, not validated) no realiza la comprobación para la que fue creada.
alter table nombre_tabla
disable constraint nombre_constraint;
  • Una constraint activada (enabled, validated) podremos activarla si la información existente cumple la restricción. Una vez activada, toda la información debe cumplir la restricción.
alter table nombre_tabla
enable constraint nombre_constraint;
  • Una constraint enforce o también conocida como obligatoria (enabled, not validated) la podemos activar aunque los datos existentes no cumplan la restricción. Pero los nuevos datos o modificaciones deben cumplir con la restricción.
alter table nombre_tabla
enforce constraint nombre_constraint;
nombre_tabla es el nombre de la tabla o sinónimo (nombre alternativo de un objeto -tabla-) al cual el usuario tiene acceso. Si la tabla pertenece a un usuario distinto del nuestro, se debe especificar el nombre del propietario (propietario.nombre_tabla) además de tener el privilegio ALTER TABLE sobre ella.

Otros enlaces:
Consultar información sobre las constraints de una tabla.
—Procedimiento que se encarga  de activar/desactivar todas las constraints de todas las tablas de un usuario.
—Web de Oracle sobre ALTER TABLE

Información de las constraints de una tabla. Oracle.

Para conocer mediante una consulta SQL algunos datos de las restricciones  (constraintsutilizando vistas del diccionario de datos de Oracle conociendo solo el nombre de la tabla podemos hacer la siguiente SELECT, en la que nos indica el propietario, nombre de la tabla, nombre de la columna que tiene la restricción, nombre de la constraint, tipo de constraint, la condición que deben cumplir las constraints tipo CHECK y el estado.

Un ejemplo mostrando información de las constraints donde la tabla se llama EMP.

select
         owner,
         table_name,
         column_name,
         constraint_name,
         constraint_type,
         search_condition,
         status
from
         all_constraints
  join all_cons_columns
  using(owner,table_name,constraint_name)
where
         table_name='EMP';

Información de las constraints

Owner es el nombre del esquema en el que se encuentra la tabla. Tipo de constraint sobre tabla puede ser: PRIMARY KEY (P), FOREIGN KEY (R), UNIQUE (U), CHECK (C). El nombre de una constraint es único por esquema.



Basándonos en la SELECT anterior, podemos modificar la cláusula WHERE para filtrar por los datos que nos interesan. Recordar que la información está en mayúsculas, así que en las condiciones del WHERE al preguntar por valores, utilizar mayúsculas.


Describir las vistas, para ver qué otra información nos dan y así modificar la SELECT para obtener lo que buscamos. En ALL_CONS_COLUMNS básicamente tenemos la información de qué columnas son las afectadas por la constraint. En ALL_CONSTRAINTS tenemos información sobre su estado (estatus, validate), constraints a las que se hace referencia en caso de una foreign key (r_constraint_name,r_owner), regla de eliminación (delete_rule), índice asociado a la constraint (index_name, index_owner), etc.

Otra alternativa a las vistas ALL_CONSTRAINTS y ALL_CONS_COLUMNS son: USER_CONSTRAINTS y USER_CONS_COLUMNS, en las que la información que nos mostraran se limita a las constraints pertenecientes al usuario con el que nos hemos conectado.


–Web de Oracle sobre la vista ALL_CONSTRAINTS y sobre ALL_CONS_COLUMNS

Privilegio para hacer referencia a tabla

Descripción gráfica foreign key

Cuando queremos crear una constraint foreign key en una tabla «tabla_o», que haga referencia a una tabla «tabla_r» que no pertenece al «usuario_o» propietario de «tabla_o», es decir, la tabla «tabla_r» a la que se hace referencia se encuentra en un esquema distinto al de «tabla_o», se necesita tener el privilegio explícito, es decir, que el «usuario_o» propietario de «tabla_o» debe tener explícito el permiso para poder hacer referencia a «tabla_r», ya que no es suya.

El «usuario_r» propietario de la tabla «tabla_r» o un usuario con privilegios para realizar el otorgamiento debe dar el permiso al «usuario_o» (propietario de «tabla_o»), ejecutando:
grant references on tabla_r to usuario_o;
Y si lo queremos quitar entonces ejecutamos:
revoke references on tabla_r from usuario_o cascade constraints;
Esta última instrucción quita el privilegio al «usuario_o» y elimina las foreign key que hacían referencia a «tabla_r».

jueves, 21 de abril de 2011

Recibir archivos via bluetooth en Mac

Para poder enviar archivos por bluetooth al mac, por ejemplo desde un dispositivo móvil. Previamente activaremos el bluetooth y el compartir archivos.

Preferencias del Sistema
En la sección de Internet y conexiones inalámbricas Compartir
Marcar la casilla de Compartir Bluetooth
Preferencias del sistema: Compartir
Además podemos configurar las carpetas que pueden explorar y donde recibir los archivos.

En preferencias del Sistema
Bluetooth
Activarlo
Y ponerlo en modo visible
Preferencias del sistema: Bluetooth
Se ha utilizado:
–Mac OS X 10.6.8

Enviar archivos desde Android al PC

Bluetooth
Desde el Market buscar «bluetooth file transfer», es una aplicación gratuita que nos permitirá enviar varios archivos por bluetooth a nuestro computador.

Una vez instalada, simplemente asegurarse de que el PC tenga activado el bluetooth y que esté visible. Cuando se seleccione algún archivo para enviar, da la opción de qué aplicación utilizar, y es entonces cuando escogemos «enviar por bluetooth» —se verá el icono de la imagen de este post—.

Se ha utilizado:
–Xperia x10 mini pro para enviar archivos al PC.

Otros enlaces:
Recibir archivos vía bluetooth en Mac

domingo, 17 de abril de 2011

Activar/desactivar todas las constraints de todas las tablas. Oracle.

Activar o desactivar constraints de tablas

«Si lo que buscas es cómo activar, desactivar u obligar UNA constraint; mira la entrada: Modificar el estado de una constraint»


Para activar o desactivar todas las constraints de las tablas de un esquema he creado dos procedimientos.

El procedimiento dis_all_cons se encargará de desactivar todas las constraints de las tablas de un usuario determinado, por defecto el usuario que invoca el procedimiento.

El usuario que ejecuta el procedimiento debe de ser capaz de tener acceso a las tablas del esquema en cuestión y poder realizar un ALTER sobre ellas.

El procedimiento intentará desactivar las constraints en cascada, así que si existen tablas en otro esquema que hacen referencia (foreign key) a una del esquema del que queremos desactivarlas (primary key) también las desactivará, y si no tenemos permisos fallará. El procedimiento que las activa ena_all_cons no tiene en cuenta a estas constraints que se encuentran en otros esquemas. Espero hacerlo en algún momento, ya que no sé cómo hacer una activación en cascada fácilmente.

Podemos consultar previamente la información de las constraints de las tablas del esquema que queremos modificar y ver su estado entre otras cosas.
Ejemplo utilizando el esquema SCOTT

select  table_name,constraint_name,constraint_type,status,r_constraint_name
from    all_constraints
where owner='SCOTT';


create or replace procedure dis_all_cons
(    p_owner    varchar2    default USER
)
--Uso: dis_all_cons[('esquema')];
--dis_all_cons;           --desactiva las constraints del esquema de quien ejecuta
--dis_all_cons('HR');   --desactiva las constraints del esquema HR

--el procedimiento se ejecutará con los permisos de quien lo invoca
authid current_user
as
begin
    --obtenemos nombre de la tabla y nombre de la restricción
    --pertenecientes al usuario especificado
    --que no estan desactivadas
    --primary key que no sean de tablas organizadas por indice
    --o cualquier otra constraint q sea del tipo C ó U ó R
    for reg in (select    table_name,constraint_name
                   from       all_constraints
                   where     owner=p_owner
                       and     status<>'DISABLED'
                       and (    (constraint_type in ('P')
                                    and table_name not in
                                               (select table_name
                                                from   all_tables
                                                where owner=p_owner
                                                    and iot_type is not null
                                               )
                                    )
                                or    constraint_type in ('C','U','R')
                               )
                   )
    loop
        execute immediate 'alter table '||p_owner||'.'||reg.table_name||' DISABLE constraint '||reg.constraint_name||' cascade';
    end loop;
end dis_all_cons;
/
------------------------------------------------------------------------------------------

create or replace procedure ena_all_cons
(   
    p_owner    varchar2    default USER
)
--Uso: ena_all_cons[('esquema')];
--ena_all_cons;           --activa las constraints del esquema de quien ejecuta
--ena_all_cons('HR');   --activa las constraints del esquema HR

authid current_user
as
begin
    --obtenemos nombre de la tabla y nombre de la restricción
    --pertenecientes al usuario especificado
    --que no estan activadas
    --primary key que no sean de tablas organizadas por indice
    --primero se activan todas las primary key
    for reg in (select     table_name,constraint_name
                   from        all_constraints
                   where     owner=p_owner
                       and status<>'ENABLED'
                       and constraint_type in ('P')
                       and table_name not in
                                                    (select table_name
                                                     from   all_tables
                                                     where iot_type is not null
                                                    )
                   )
    loop
        execute immediate 'alter table '||p_owner||'.'||reg.table_name||' ENABLE constraint '||reg.constraint_name;
    end loop;
    --se activan el resto de constraints
    --de tipo C,U y R
    for reg in (select   table_name,constraint_name
                    from     all_constraints
                    where   owner=p_owner
                        and  status<>'ENABLED'
                        and  constraint_type in ('C','U','R')
                )
    loop
        execute immediate 'alter table '||p_owner||'.'||reg.table_name||' ENABLE constraint '||reg.constraint_name;
    end loop;
end ena_all_cons;
/

El uso de estos procedimientos queda bajo responsabilidad de quien los utilice.

sábado, 16 de abril de 2011

Activar/desactivar todos los disparadores de todas las tablas. Oracle.

Diagrama sentencia ALTER TABLE
Si solo se quiere desactivar un disparador o todos los de una sola tabla, ver el post «Activar/desactivar disparadores»

Para poder desactivar o activar todos los disparadores —triggers— de todas las tablas de un esquema determinado en Oracle, creamos el siguiente procedimiento que realizará la tarea. (distinto es, triggers de los cuales se es propietario)

create or replace procedure ena_dis_all_tri
(    p_opcion    varchar2    default 'DISABLE'
,    p_owner     varchar2    default USER
)
/*
-- procedimiento que activa o desactiva todos los disparadores de todas las tablas del esquema especificado
-- recibe dos parametros opcionalmente:
-- p_opcion (enable, disable).
-- p_owner esquema/usuario al que le desactivamos/activamos los triggers de sus tablas.
-- valores por defecto de los parametros:
-- p_opcion=disable p_owner=user
-- Uso: ena_dis_all_tri[([p_opcion=>'p_opcion'][,p_usuario=>'p_usuario'])]
-- Ejemplos:
-- ena_dis_all_tri; --desactiva los triggers del usuario que ejecuta
-- ena_dis_all_tri(p_opcion=>'enable'); --activa los triggers del usuario que ejecuta
-- ena_dis_all_tri(p_usuario=>'hr'); --desactiva los triggers del usuario hr
-- ena_dis_all_tri(p_opcion=>'enable',p_usuario=>'hr'); --activa los triggers del usuario hr
*/ 
as
    --variable auxiliar
    v_aux        number;
    --cursor que nos dará el nombre de las tablas
    --que hay que activar/desactivar todos los triggers
     cursor cur is
        select    table_name
        from     all_triggers
        where   table_owner=upper(p_owner)
            and status<>p_opcion||'D';
begin
    --------------esta partes es opcional, solo sirve para realizar unas comprobaciones
    --comprobamos de que no se ha introducido mal el nombre de usuario
    select  count(username)
     into     v_aux
     from    all_users
     where username=upper(p_owner);
    if v_aux=0 then
        raise_application_error(-20000,'El usuario "'||p_owner||'" no existe.');
    end if;
    --comprobamos de que no se ha introducido mal la opcion
    if upper(p_opcion) not in ('ENABLE','DISABLE') then
        raise_application_error(-20001,'Opción "'||p_opcion||'" no válida. Usar: "ENABLE" o "DISABLE"');
    end if;
    --------------fin parte opcional
    --ejecutamos la tarea
    for reg in cur loop
        execute immediate 'alter table '||p_owner||'.'||reg.table_name
                                      ||' '||p_opcion||' all triggers';
    end loop;
end ena_dis_all_tri;
/

Se ha realizado en una base de datos Oracle 10.2.0.1

El procedimiento se ejecutará con los permisos del usuario que cree el procedimiento. Debe tener privilegio CREATE ANY TRIGGER para poder visualizar los triggers en la vista ALL_TRIGGERS o tener acceso a las tablas. Además, permiso ALTER sobre las tablas y sobre los triggers, éste último porque pueden existir triggers asociados a las tablas del esquema creados por otro usuario.
grant alter any trigger,
          alter any table,
          create any trigger to usuario;
Comprobar la información con la siguiente SELECT:
select  owner,trigger_name,table_name,status
from    all_triggers
where  table_owner='USUARIO';
El uso del procedimiento queda bajo responsabilidad de quien lo utilice.

viernes, 15 de abril de 2011

Cambiar reproductor de archivos

Ventana obtener información de archivo

Clic derecho en el archivo
Obtener información
En la sección Abrir con:
Escoger del listado la aplicación que se desee.
Si se desea poner como aplicación por omisión para ese tipo de archivos clic en Cambiar todo...
Continuar

Se ha utilizado:
–Mac OS X 10.6.8

Cambiar grupo de trabajo en Mac

Para poder ver los equipos de la red Windows—Mac en el Finder sin tener que montarlo como unidad, buscando un poco encontré que tenía que cambiar el grupo de trabajo a la Mac y con ello en el Finder aparecen los equipos que se encuentran en la red.

Preferencias del Sistema
Red
Escoger la conexión que se esté utilizando (AirPort, Ethernet)
Avanzado (Botón en la esquina inferior derecha)
Wins
Selecciona el grupo de trabajo
Aceptar
Aplicar

Propiedades avanzadas Airport: WINS

Se ha utilizado:
—Mac OS X 10.6.8
Fuente: Compartir archivos entre Mac y Windows

miércoles, 6 de abril de 2011

Activar el salvapantallas con exposé en Mac

  •  
Preferencias del sistema
Exposé y Spaces
Exposé
Escogemos la esquina y seleccionamos la opción Iniciar Salvapantallas
Exposé y Spaces

  • También podemos hacerlo desde:
Preferencias del sistema
Escritorio y salvapantallas
Salvapantallas
Clic en el botón que se encuentras en la esquina inferior izquierda. Esquinas activas...
En la esquina que deseemos seleccionamos la opción Iniciar Salvapantallas
Preferencias del sistema: escritorio y salvapantallas

Se ha utilizado:
—Mac OS X 10.6.8

Bloquear sesión en Mac mediante teclado

Cómo conseguir bloquear la sesión en Mac, para en algún momento dejarla y no tener que preocuparnos de curiosos.
  •  Tras el salvapantallas o al bloquear (reposar) la pantalla
Ir a Preferencias del Sistema
En la sección de Personal ir a Seguridad
Activar la casilla de Solicitar contraseña... tras iniciarse el reposo o el salvapantallas.
Una vez hecho esto podemos; activar el salvapantallas con exposé o bloquear la pantalla con el atajo Ctrl+Shift+botón de expulsar disco. Al intentar activar la pantalla, nos pedirá contraseña.

  • Configurando un atajo de teclado para que ejecute un script
Logo Automator

Abrir Automator de entre las aplicaciones
La plantilla a elegir es la de Servicio
Donde dice El servicio recibe, seleccionamos: sin datos de entrada
Añadimos un script shell (buscamos en el panel izquierdo y lo arrastramos al derecho)
En la ventana de código dejamos solo la siguiente línea:

'/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession' -suspend


Podemos darle a ejecutar y probarlo antes de guardarlo. Debería bloquearse la sesión y mostrar la pantalla de iniciar sesión.

Si todo ha ido bien, guardamos (en archivo-guardar)
Le damos un nombre como ejemplo: bloqpantalla

Ventana de trabajo de Automator


Entramos a Preferencias del Sistema
En la sección Hardware ir a Teclado
Clic en Funciones rápidas de teclado
En la columna izquierda, escogemos Servicios
En la columna derecha, entre el listado veremos a nuestro servicio: bloqpantalla
Seleccionamos bloqpantalla y damos clic en la parte derecha de la fila para agregarle un atajo de teclado. (por ejmplo alt+cmd+L)

Preferencias del sistema: Funciones rápidas de teclado.

Una vez que presionemos la combinación de teclas, se bloqueará la pantalla.

Se ha utilizado:
—Mac OS X 10.6.8