Warning: Declaration of Suffusion_MM_Walker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /DISK2/WWW/plsql.cz/www/wp-content/themes/suffusion/library/suffusion-walkers.php on line 39
Feb 222014
 

Představení další novinky - byla vylepšena funkce SYS_CONTEXT. Dle kapitoly Changes in This Release for Oracle Database SQL Language Reference v manuálu Oracle® Database SQL Language Reference došlo k přidání nového namespace a to konkrétně SYS_SESSION_ROLES. Tedy už jsou nyní dva – USERENV a nová SYS_SESSION_ROLES, která umožňuje zjistit zda-li je role aktivní nebo neaktivní.  Příklad:

sqlplus / as sysdba;
create role developer_role;
grant developer_role to apex_workout;

Nalogování pod apex_workout a :

SET ROLE ALL EXCEPT DEVELOPER_ROLE;

Dříve to bylo zjstitelné z SESSION_ROLES pohledu. Takže spíše než novinka lehce jednodušší a rychlejší přístup. Co stojí za zmínku je, že v případě neexistující role funce vrací FALSE – tzn. to samé jako pro vypnutou roli.

Začal jsem schválně názvem kapitoly ve které se mluví o této novince. Ovšem již tam není zmínka o tom, že v SYS_CONTEXT byl vylepšen namespace USERENV a jsou tu nové atributy. Od pohledu mi připadal seznam atributů delší, takže jsem to začal zkoumat, jinak to však neni uvedeno jako změna, což je škoda, některé nové atributy jsou příjemné. Takže nové atributy:

  • CDB_NAME – jméno CDB, pokud to není multitenant container database tak NULL
  • CLIENT_PROGRAM_NAME - jméno klientského programu
  • CON_NAME - jméno containeru, pokud to není multitenant databáže tak DB_NAME
  • DB_SUPPLEMENTAL_LOG_LEVEL – vrací level v případě supplemental loggingu, jinak null. Možné hodnoty jsou stejné jako supplemental loggingu, tedy ALL_COLUMN, FOREIGN_KEY, MINIMAL, PRIMARY_KEY, PROCEDURAL a UNIQUE_INDEX
  • IS_APPLY_SERVER - pro Oracle Data Guard – true na apply server, jinak false
  • ORACLE_HOME – vrací ORACLE_HOME.  Sexy!
  • PLATFORM_SLASH - oddělovač adresářové cesty na dané platformě
  • SHEDULER_JOB - Y = je to spuštěno v dbms_scheduler,  N – není to spuštěno v dms_scheduler. Hodne sexy, předtím se to řešilo taky pomocí kontextu jestli to má nebo nemé bg_job_id či fg_job_id

U mě to vypadá nějak takto:

Asi bych čekal obrácené lomítko jako path-separator, tuhle instanci mam na Windows. Osatní sedí – nemám Oracle Data Quard, na téhle instanci ani supplemental logging a multitenant db na téhle instnaci také nemám. Hodně se mi líbí atributy SCHEDULER_JOB, CLIENT_PROGRAM_NAME, ORACLE_HOME a PLATFORM_SLASH. Všechno je pouze lehčí cesta než koukání do views (v$database, v$sesssion..). Pochopitelně mimo věcí souvisejících s  multitenant databází (CDB_NAME, CON_NAME) a PLATFORM_SLASH - zde mi nanapadá z hlavy žádné view ze kterého bych to byl schopen vytřískat. So, šikovná věcička.

 Posted by at 02:12

 Leave a Reply

(required)

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>