2012-02-17 124 views
1

我正在嘗試創建一個臨時表空間,該表空間的大小是「TEMP」表空間的一半。使用查詢創建臨時表空間以確定Oracle中的大小

因此,像:

create temporary tablespace Temptest 
TempFile 'somepath' 
size ?M; 

在哪裏? =

select bytes/2/1024/1024 
    from dba_temp_files 
where tablespace_name='TEMP'; 

回答

1

你可以編寫一個使用動態SQL的PL/SQL塊。類似於

DECLARE 
    l_current_temp_size_mb NUMBER; 
    l_sql_stmt    VARCHAR2(1000); 
BEGIN 
    SELECT SUM(bytes)/1024/1024 
    INTO l_current_temp_size 
    FROM dba_temp_files 
    WHERE tablespace_name = 'TEMP'; 

    l_sql_stmt := 
    'CREATE TEMPORARY TABLESPACE tempTest TEMPFILE <<somepath>> size ' || 
     to_char(l_current_temp_size_mb/2) || 
     ' M'; 
    -- Print out the SQL statement or write it to a table so that if there is an error, 
    -- you know what SQL statement was generated and can debug it. 
    dbms_output.put_line(l_sql_stmt); 
    EXECUTE IMMEDIATE l_sql_stmt; 
END; 
+0

謝謝賈斯汀!這應該工作。 – Pat 2012-02-18 02:10:51

相關問題