Blame

9b4112 feagor 2025-12-02 07:46:46
1
```oraclesql
2
SELECT * FROM table;
3
49f335 feagor 2025-12-02 06:58:34
sdfds
4
### Текущие файлы
5
b92a2b feagor 2025-12-02 07:43:05
6
```oraclesql
49f335 feagor 2025-12-02 06:58:34
sdfds
7
SELECT d.file#,d.ts#,t.NAME ts_name,d.NAME file_name,d.STATUS,d.ENABLED,d.bytes,d.BLOCKS
8
FROM v$datafile d
9
join v$tablespace t on t.TS# = d.TS#
10
order by ts_name,file_name;
11
12
alter tablespace COLVIR add datafile '/u01/db/data/DW/COLVIR12.DBF'
13
SIZE 5M REUSE AUTOEXTEND ON NEXT 128M MAXSIZE 32768M;
14
```
dd262b feagor 2025-12-02 07:45:58
15
49f335 feagor 2025-12-02 06:58:34
sdfds
16
### Добавление новых файлов
b92a2b feagor 2025-12-02 07:43:05
17
```oraclesql
49f335 feagor 2025-12-02 06:58:34
sdfds
18
declare
19
l_ts_nm varchar2(30) := 'COLVIR'; -- Tablespace в который добавляем файлы
20
l_files_add number := 3; -- Количество файлов к добавлению
21
l_exec_cmd number := 0; -- 0 - вывести команды добавления, 1 - вывести команды и выполнить их
22
---------------------------------------------
23
l_file_dest varchar2(100);
24
last_idx int;
25
cmd varchar2(1000);
26
sl varchar2(1);
27
begin
28
if instr(dbms_utility.port_string,'WIN_')>0 then
29
sl:= '\';
30
else
31
sl:= '/';
32
end if;
33
SELECT substr(file_name ,1,instr(file_name ,sl,-1)-1) into l_file_dest FROM dba_data_files d where d.TABLESPACE_NAME = l_ts_nm and rownum=1;
34
--Последний номер файла
35
select nvl(max(to_number(regexp_substr(substr(name,instr(name,sl,-1)+1),'\d+'))),0) max_n
36
into last_idx
37
from v$datafile
38
where regexp_like(upper(name),'^.+'||l_ts_nm||'\d+.DBF$');
39
for prn in last_idx+1..last_idx+l_files_add loop
40
cmd := 'ALTER TABLESPACE '||l_ts_nm ||' ADD DATAFILE '''||l_file_dest|| sl ||l_ts_nm || lpad(prn,2,'0') || '.DBF'' SIZE 2G REUSE AUTOEXTEND ON NEXT 512m MAXSIZE 32g;';
41
DBMS_OUTPUT.PUT_LINE( cmd);
42
if l_exec_cmd = 1 then
43
EXECUTE IMMEDIATE cmd;
44
end if;
45
end loop;
46
end;
47
```