Saya ingin menghapus beberapa tidak terpakai skema pada kami oracle DB.
Bagaimana saya dapat permintaan untuk semua skema nama ?
Menggunakan sqlplus
sqlplus / as sysdba
run:
PILIH * DARI dba_users
Jika anda hanya ingin nama pengguna, lakukan hal berikut:
PILIH username DARI dba_users
Kemungkinan besar, anda ingin
SELECT username
FROM dba_users
Yang akan menunjukkan kepada anda semua pengguna dalam sistem (dan dengan demikian semua potensi skema). Jika anda definisi dari "skema" memungkinkan untuk skema untuk menjadi kosong, yang's apa yang anda inginkan. Namun, bisa ada perbedaan semantik di mana orang-orang hanya ingin menyebut sesuatu yang jika skema ini benar-benar memiliki setidaknya satu objek sehingga ratusan akun pengguna yang tidak akan pernah sendiri setiap objek yang dikecualikan. Dalam hal ini
SELECT username
FROM dba_users u
WHERE EXISTS (
SELECT 1
FROM dba_objects o
WHERE o.owner = u.username )
Dengan asumsi bahwa siapa pun yang menciptakan skema yang masuk akal tentang menetapkan default tablespaces dan dengan asumsi bahwa anda tidak tertarik dalam skema bahwa Oracle telah disampaikan, anda dapat menyaring orang-orang skema dengan menambahkan predikat pada default_tablespace
, yaitu
SELECT username
FROM dba_users
WHERE default_tablespace not in ('SYSTEM','SYSAUX')
atau
SELECT username
FROM dba_users u
WHERE EXISTS (
SELECT 1
FROM dba_objects o
WHERE o.owner = u.username )
AND default_tablespace not in ('SYSTEM','SYSAUX')
Hal ini tidak sangat jarang untuk menemukan sebuah sistem di mana seseorang telah salah diberi non-pengguna sistem default_tablespace
dari SISTEM
, meskipun, jadi pastikan bahwa asumsi-asumsi yang tahan sebelum mencoba untuk menyaring Oracle disampaikan skema cara ini.
Bagaimana tentang :
SQL> select * from all_users;
itu akan kembali daftar semua pengguna/skema, ID's dan tanggal dibuat dalam DB :
USERNAME USER_ID CREATED
------------------------------ ---------- ---------
SCHEMA1 120 09-SEP-15
SCHEMA2 119 09-SEP-15
SCHEMA3 118 09-SEP-15
Berikut sql daftar semua skema di oracle yang dibuat setelah instalasi ORACLE_MAINTAINED='N' adalah filter. Ini adalah kolom baru di 12c.
pilih username yang berbeda,ORACLE_MAINTAINED from dba_users where ORACLE_MAINTAINED='N';