пятница, 23 октября 2015 г.

Update BLOB

set define off
DECLARE
   vb1 CLOB :=
'long text';
   vb2 CLOB :=
                'long text';
   vb3 CLOB :=
                'long text';
   vb CLOB := vb1||vb2||vb3;
   vb_upd BLOB;
FUNCTION convert_clob_to_blob (pclob CLOB) RETURN BLOB
  IS
    lblob              BLOB;
    ldest_offset    INTEGER := 1;
    lsource_offset INTEGER := 1;
    llang_context  INTEGER := dbms_lob.default_lang_ctx;
    lwarning        INTEGER := dbms_lob.warn_inconvertible_char;
  BEGIN
    dbms_lob.createtemporary (lblob, TRUE);

    dbms_lob.converttoblob (dest_lob    => lblob,
                                              src_clob    => pclob,
                                              amount      => dbms_lob.lobmaxsize,
                                              dest_offset => ldest_offset,
                                              src_offset  => lsource_offset,
                                              blob_csid   => dbms_lob.default_csid,
                                              lang_context=> llang_context,
                                              warning     => lwarning);
    RETURN lblob;
END convert_clob_to_blob;
BEGIN
   vb_upd := convert_clob_to_blob(vb);
   UPDATE tab SET BLOB_COL = vb_upd
   WHERE ...;
   COMMIT;
END;



/  

Privilegies

It is useful to find out full hierarchy of privileges by grantee. I have attached the scripts to do it.

privs_role_all_by_grantee.sql
privs_sys_all_by_grantee.sql
privs_tab_all_by_grantee.sql

Startup history

set pagesize 3000
set lines 300
col HOST_NAME format a30
col PLATFORM_NAME format a30
col STARTUP_TIME format a21
col DB_NAME format a9
select DBID
     , TO_CHAR(STARTUP_TIME, 'yyyy.mm.dd hh24:mi:ss') STARTUP_TIME
     , HOST_NAME
     , DB_NAME
     , PLATFORM_NAME
from DBA_HIST_DATABASE_INSTANCE
order by STARTUP_TIME;     

Update BLOB

set define off DECLARE    vb1 CLOB := 'long text';    vb2 CLOB :=                 'long text';    vb3 CLOB :=              ...