Archivado como BD, SQLServer por josepcoves | 0 comments
En SQL Server se tiene una capa doble de autenticación, por una parte se tienen los usuarios de instancia (Security - Logins) y luego a nivel de BD tenemos otros logins (DB - <DB_Name> - Security - Users). Después de realizar un restore de base de datos, estos logins pueden quedar descoordinados con lo que es necesario volver a enlazar los logins de instancia con los de BD. Para ello podemos usar la siguiente instrucción por cada usuario a enlazar (para ello se requiere una cuenta de administrador de BD):
USE DATABASE_NAME;
GO
EXEC sp_change_users_login 'Auto_Fix', 'username', NULL;
GO
Archivado como BD, SQLServer por josepcoves | 0 comments
La siguiente expresión nos permite obtener la fecha y la hora de ejecución de un package de SSIS.
Por ejemplo, si la fecha es 02/01/2010 10:09, la expresión devolverá el siguiente DT_STR:
“20100102_1009″.
Lo publico porqué no me ha parecido trivial el modo de conseguir obtener dos dígitos para todos los campos, pues la función DatePart solamente devuelve un integer sin 0’s a la izquierda, para ello, usamos la función RIGHT, que nos añade los ceros faltantes. Esta función puede resultar muy útil para renombrar ficheros de carga con la fecha y hora de carga y guardarnos un histórico.
(DT_STR, 4, 1252) Year( @[System::StartTime] ) + right("0"+(DT_STR, 4, 1252) Month( @[System::StartTime] ),2) + right("0"+(DT_STR, 4, 1252) Day ( @[System::StartTime] ),2) +"_"+ right("0"+(DT_STR, 2, 1252) Datepart ("hh", @[System::StartTime] ),2) + right("0"+(DT_STR, 2, 1252) Datepart ("mi", @[System::StartTime] ),2)
Archivado como APEX, BD, Oracle, Reporting, linux, ubuntu por josepcoves | 0 comments
Since I think this can be quite useful I’ll write it down in English.
I’ve followed the steps proposed by Carl Backstorm but I’m going to install it in a Linux Server (Ubuntu 8.04).
Files needed:
Cocoon 2.1.11
Tomcat 6
fop_post.zip
Download and decompress them all.
1) Download and decompress cocoon-2.1.11
2) Check JAVA is installed (I installed jdk6) and
be sure JAVA_HOME is set to your actual location:
Go to the decompressed folder (cocoon-2.1.11/) and execute:
3) Notice where cocoon.war was built:
cocoon-2.1.11/build/cocoon
4) Copy cocoon.ware to tomcat in webapps directory
apache-tomcat-6.0.18/webapps/
5) Copy fop_post folder to
apache-tomcat-6.0.18/webapps/cocoon/
6) Start apache tomcat:
Before doing that, you may want to change apache port in order to avoid conflicts with APEX port.
You can change apache 8080 port to 8088 by editing conf/server.xml and replacing 8080 with 8088.
(locate to tomcat folder and run as root)
7) Check installation is right by accessing http://localhost:8088/cocoon
Now, let’s configure APEX in order to be able to print reports in PDF using cocoon:
8.1) Login with internal APEX account
8.2) Go to Manage Service -> Instance Settings -> Report Printing
8.3) Change to new configuration
Print Server Host Address: localhost
Print Server Port: 8088
Print Server Script: /cocoon/fop_post/
9) You may want to start cocoon automatically at startup. Then you can create a file under /etc/init.d like the following one:
/etc/init.d/cocoon.sh
1
2
3
4
| #!/bin/bash
JAVA_HOME=/usr/
echo "Starting Apache Cocoon..."
/opt/apache-tomcat-6.0.18/bin/startup.sh |
Make it executable
$ sudo chmod +x /etc/bin/cocoon.sh
and add it in your boot process:
$ update-rc.d cocoon.sh defaults
Hope it helps!!
Further information:
http://carlback.blogspot.com/2007/03/apex-cocoon-pdf-and-more.html
Archivado como BD, DBA, Oracle, Query, Script por josepcoves | 0 comments
Para compilar los objetos inválidos del usuario de BD actual podemos ejecutar el siguiente script:
1
2
3
4
5
6
7
8
| SELECT 'ALTER '
||decode(object_type,'PACKAGE BODY','PACKAGE',object_type)
||' '
||object_name
||decode(object_type,'PACKAGE BODY', ' COMPILE BODY;',' COMPILE;')
FROM user_objects
WHERE STATUS = 'INVALID'
AND object_type IN ('PACKAGE','PACKAGE BODY','FUNCTION','PROCEDURE'); |
Esto nos generará una serie de alters para poder recompilar los objetos inválidos.
Archivado como BD, DBA, Oracle, Script por josepcoves | 0 comments
Un ejemplo de script para hacer un drop de todos los objetos del usuario seria el siguiente:
1
2
3
4
5
6
7
8
9
| SELECT 'drop sequence ' || sequence_name || ';' FROM user_sequences
UNION
SELECT 'drop trigger ' || trigger_name || ';' FROM user_triggers
UNION
SELECT 'drop view ' || view_name || ';' FROM user_views
UNION
SELECT 'drop index ' || index_name || ';' FROM user_indexes
UNION
SELECT 'drop table ' || table_name || ';' FROM user_tables; |
De momento solamente hace drops de triggers, vistas, índices y tablas pero se puede añadir unions para generar el drop de lo que queramos.
Una vez ejecutada la consulta, copiar el resultado en una hoja de SQL y ejecutarla. Es posible que nos den errores por dependencias y no se borren todos los objetos, en ese caso lo que hago es ejecutar el script varias veces hasta que se borren todos los objetos (se debería hacer una nueva versión que calcule las dependencias pero eso ya seria demasiado tiempo…)
Archivado como BD, DBA, Oracle por josepcoves | 0 comments
Para descubrir la versión de Base de Datos Oracle con la que estamos trabajando podemos ejecutar la siguiente sentencia SQL:
SELECT * FROM SYS.V_$VERSION;
Archivado como BD, DBA, Oracle por josepcoves | 0 comments
ALTER database datafile
'/oracle/oradata/tablespace.dbf'
autoextend ON;
Archivado como BD, DBA, Oracle por josepcoves | 0 comments
Para crear un esquema de BD primero tendremos que crear un tablespace asociado y posteriormente crear el usuario. Aquí tenemos un ejemplo, suponiendo que queremos crear el usuario xx_schema con password xx_schema:
sqlplus /nolog
sql> CONNECT / AS sysdba
sql> CREATE tablespace xx_schema datafile '/oracle/oradata/xx_schema.dbf' size 500 M AUTOEXTEND ON MAXSIZE 1800M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
sql> CREATE USER xx_schema identified BY XX_SCHEMA DEFAULT tablespace xx_schema;
sql> Grant CONNECT,Resource TO xx_schema;
Archivado como BD, DBA, Oracle, Oracle Applications, UNIX, linux por josepcoves | 0 comments
Hay un fichero que contiene todas la inicialización de todas las variables. Se puede encontrar en $ORACLE_HOME ([instancia]/product/[version])
si hacemos un:
ls *env*
veremos el listado de ficheros de incialización de entorno. Para ejecutarlos (supongamos un fichero llamado entorno.env):
. ./entorno.env
Una vez cargado el entorno podríamos entrar en el sqlplus, por ejemplo.
Archivado como BD, Oracle, Script por josepcoves | 0 comments
Si queremos guardar el output de la ejecución de cualquier sqlpluspodemos activar el modo spool que nos irá guardando en el fichero que le especifiquemos la salida del script.
ejemplo:
SET serveroutput ON size 1000000
spool salida.txt
BEGIN
fnd_global.apps_initialize (user_id => 3018
,resp_id => 52630
,resp_appl_id => 551);
xx_custom_pkg.procedure_with_output;
END;
/
spool off
EXIT