我想使用以下存储过程将数据插入到包含有关表空间可用空间信息的表中。
仅使用INSERT INTO语句而没有程序编译工作正常,但是我编译程序时它没有工作。
以下是示例存储过程:
CREATE OR REPLACE PROCEDURE INSERTSPACEINFO(
TABLESPACE_NAME IN SPACEINFO.TABLESPACE_NAME%TYPE,
TSIZE IN SPACEINFO.TSIZE%TYPE,
FREESIZE IN SPACEINFO.FREESIZE%TYPE,
SYSDATE IN SPACEINFO.INSERT_DATE%TYPE)
IS
BEGIN
INSERT into SYS.Spaceinfo (TABLESPACE_NAME, TSIZE, FREESIZE, INSERT_DATE)
(SELECT
df.tablespace_name AS "Tablespace",
df.bytes / (1024 * 1024 * 1024) AS "TSIZE",
Trunc(fs.bytes / (1024 * 1024 * 1024)) AS "FREESIZE",
SYSDATE
FROM (
SELECT tablespace_name
,Sum(bytes) AS bytes
FROM dba_free_space
GROUP BY tablespace_name
) fs,
(
SELECT tablespace_name,
SUM(bytes) AS bytes
FROM dba_data_files
GROUP BY tablespace_name
) df,
dual
WHERE fs.tablespace_name = df.tablespace_name);
COMMIT;
END;