giovedì 31 ottobre 2019

OWB 11.2.0.4 - Configuration Templates, Default Values for Mappings etc

These configuration templates are defined on the global tree, once you create a configuration template it is used in a configuration – then any objects created will inherit these default values. 
This then brings up the editor for the configuration template, the properties are in the tree, and the columns such as EXADATA_TEMPLATE  is where you can change the property value. 
Remember these are defaults so you are not setting specific values on an object – these are the defaults of o overriden value is specified.




The final piece of the jigsaw is to use this configuration template in a configuration – otherwise it will never be used.

  
 

martedì 15 ottobre 2019

OWB 11.2.0.4 - OMBPLUS come estrarre il valore delle DB_LOCATION da un mapping

Sono anni che non programmo in OMBPLUS  e pensavo che orma OWB fosse desupportato, invece gli scheletri ritornano. Come zombi ecco che qualche cliente ancora ha come prodotto OWB, di seguito un semplice script in tcl per estrarre le location delle tabelle presenti in un mapping.

set OMBLOG <path>/tcl/transf_map_Location_BI_STAGE.log
OMBCONNECT <user>/<password>@<host>:<porta>:<SERVICE_NAME>
OMBCC '<folder>'
OMBCONNECT CONTROL_CENTER 
<user>/<password>@<host>:<porta>:<SERVICE_NAME> USE REPOSITORY '<workspace>'
OMBCAC 'control_center_configuration'


set pflist [OMBLIST MAPPINGS]
foreach procname $pflist {
set ptlist [OMBRETRIEVE MAPPING '$procname' GET TABLE OPERATORS]
foreach tabname $ptlist {
OMBRETRIEVE MAPPING '$procname' OPERATOR '$tabname'   GET PROPERTIES (DB_LOCATION)
}
}


Questo occorre salvarlo in un file tcl e poi eseguirlo fornendolo in input ad OMBPLUS.

Il risultato  è un file che contiene al suo interno ogni singola istruzione esplosa del suo output.

Nel caso in cui la LOCATION non è valorizzata troverete questo valore.

  • {Unknown value}

mercoledì 4 settembre 2019

OBIEE 12C - Purge Usage Tracking

Una volta attivato lo Usage Tracking su OBIEE occorre tenere sotto controllo le tabelle in cui vengono memorizzate le query e pensare ad uno svecchiamento delle stesse. Nelle tabelle vengono memorizzate in dei campi CLOB le query effettuate ed a lungo andar questo provoca un aumento dello spazio occupato.
Le tabelle impattate fondamentalmente sono s_nq_db_acct e s_nq_acct, collegate tra loro tramite FK.

Per verificare l'effettiva dimensione occupata dalla due tabelle si può utilizzare la seguente query:

SELECT SUM(BYTES)/1024/1024 "Real Meg" FROM DBA_SEGMENTS
WHERE SEGMENT_NAME IN (
  SELECT VAL FROM (
    SELECT TABLE_NAME, SEGMENT_NAME, INDEX_NAME FROM DBA_LOBS
    WHERE TABLE_NAME = :TABLE_NAME AND OWNER= :OWNER
  )
  UNPIVOT(VAL FOR COL IN(TABLE_NAME, SEGMENT_NAME, INDEX_NAME))
)


Per effettuare la purge dei dati si può procedere nel seguente modo:

begin
   execute immediate 'delete from <SCHEMA>.s_nq_db_acct where start_dt < (sysdate - 90);
   commit;
 
   execute immediate 'delete from
<SCHEMA>.s_nq_acct where start_dt < (sysdate - 90);
   commit;

   -- Enable row_movement
   execute immediate 'alter table
<SCHEMA>.s_nq_db_acct enable row movement';
   execute immediate 'alter table
<SCHEMA>.s_nq_acct enable row movement';
 
   -- Shrink space tables and Indexes
   execute immediate 'alter table
<SCHEMA>.s_nq_db_acct shrink space cascade';
   execute immediate 'alter table
<SCHEMA>.s_nq_acct shrink space cascade';
 
   -- Shrink space LOB segments
   execute immediate 'alter table
<SCHEMA>.s_nq_db_acct modify lob (query_blob) (shrink space)';
   execute immediate 'alter table
<SCHEMA>.s_nq_acct modify lob (query_blob) (shrink space)';
 
end;


 Al termine si potrebbe anche pensare di fare una resize dei datafiles associati al tablespace in modo da recuperare spazio disco.


mercoledì 3 luglio 2019

RDBMS ORACLE - To_Char Function di oracle perde lo zero

Di seguito un comportamento un pò strano della funzione TO_CHAR di oracle in presenza della conversione di number.
In Oracle, quando si converte un numero con uno zero iniziale in un carattere, il numero iniziale scompare.

Per ovviare a questo piccolo problema si può impostare la mask nel TO_CHAR, un esempio potrebbe essere il seguente:


La mask  'FM99999999999999.99999' utilizzata non va bene, occorre quindi esplicitare lo zero nelle mask.


La mask corretta è 'FM999999999999990.99999', come si vede sopra, peccato che se si effettua lo spool su file il problema rimane. A questo punto facciamo una piccola modifica ed il problema è risolto.



Soluzione ottenuta grazie, come al solito alla documentazione, ma in questo caso particolare grazie a Matteo Iacari.


Qui trovate ulteriori informazioni sulla Funzione TO_CHAR(number, format)