Oracle


Fornisce la lista di tutte le tabelle dello schema:

SELECT table_name FROM SYS.DBA_TABLES WHERE owner = ‘…’;
SELECT table_name FROM SYS.ALL_ALL_TABLES WHERE owner = ‘…’;
con la 9i

Fornisce la lista dei constraint di uno schema:

SELECT OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, R_OWNER, R_CONSTRAINT_NAME, DELETE_RULE, STATUS, DEFERRABLE, DEFERRED, VALIDATED, GENERATED, BAD, RELY, LAST_CHANGE, INDEX_OWNER, INDEX_NAME, INVALID, VIEW_RELATED FROM SYS.DBA_CONSTRAINTS WHERE OWNER = ‘…’

Generare script per cancellare tutte le tabelle di un utente Oracle:

SELECT ‘drop table ‘ || table_name || ‘; ‘ FROM SYS.DBA_TABLES WHERE owner = ‘…’;

Viste con dati tabelle UTENTE corrente

USER_TABLE
USER_TABLESPACES
USER_TAB_COLUMNS

Riavviare un server bloccato per mancanza processi

Questa procedura è utile quando un server si blocca (non accetta più nuove connessioni) perché ha esaurito i processi si SO.

Killare qualche processo oracle, quindi

$sqlplus /nolog
SQL*Plus: Release 9.2.0.5.0 – Production on Thu Jan 5 11:37:22 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started

Per visualizzare un xml:

visualizzare il campo xml nella tabella p_project composta dal campo id integer e dal campo xml xmltype.
SELECT t.id, t.xml.getClobVal() FROM p_project t

Per inserire un xml:

Attenzione al limite massimo di 4k, per xml più grandi bisogna usare il metodo file-directory.
Inserire un xml nella tabella p_group composta dal campo id int e dal campo xml xmltype.
DECLARE v_xml SYS.XMLTYPE; v_doc CLOB;
BEGIN
v_doc := ‘…’;
v_xml := sys.xmltype.createXML(v_doc);
INSERT INTO p_group (id, xml) VALUES (2, v_xml);
COMMIT;
END;

Per modificare:

Attenzione al limite massimo di 4k.
Modificare un xml nella tabella p_acl composta dal campo id int e dal campo xml xmltype.
DECLARE
v_xml SYS.XMLTYPE; v_doc CLOB;
BEGIN
v_doc := ‘…’;
v_xml := sys.xmltype.createXML(v_doc);
UPDATE p_acl SET xml = v_xml WHERE id=13;
COMMIT;
END;