次のようなユーザーを作成しました。
create user demouser identified by admin;
GRANT DBA to demouser;
私の問題は、このユーザーを使用してテーブルスペースと使用率を取得したいことです。
この情報を取得する手順を作成しましたが、sys として sysdba としてしか実行できません。
CREATE OR REPLACE PACKAGE E_Types as
PROCEDURE TestProc (p_recordset OUT SYS_REFCURSOR); END E_Types;
/ CREATE OR REPLACE PACKAGE BODY E_Types IS
PROCEDURE TestProc (p_recordset OUT SYS_REFCURSOR) IS
BEGIN
OPEN p_recordset
FOR
select a.TABLESPACE_NAME as Tablespace,round((1-((a.BYTES-nvl(b.BYTES,0))/a.BYTES))*100,2) AS Percentages
from
(
select TABLESPACE_NAME, sum(BYTES) BYTES
from sys.dba_data_files
group by TABLESPACE_NAME
) a,
(
select TABLESPACE_NAME, sum(BYTES) BYTES
from sys.dba_free_space
group by TABLESPACE_NAME
) b
where a.TABLESPACE_NAME = b.TABLESPACE_NAME (+)
order by ((a.BYTES-b.BYTES)/a.BYTES) desc;
END;
END; /
"jdbc:oracle:thin:@localhost:1521:XE","DEMOUSER","admin" ではなく "jdbc:oracle:thin:@localhost:1521:XE","sys as sysdba を使用して NetBeans から接続したい"、"管理者".