Я пытаюсь выполнить операцию над своей процедурой, но это не работает для меня. Я хочу показать имя файла рядом с таблицами, которые у него есть, но не повторяя имени файла, я объясню лучше. Скажем, у меня есть эта таблица:Застрял в моей процедуре [ORACLE]
-----------------------------------
| file | name_table|
| ----------------------------------|
| /home/peter/f1.dbf | table1.1 |
| /home/peter/f1.dbf | table1.2 |
| /home/peter/f2.dbf | table2.1 |
| /home/peter/f3.dbf | table3.1 |
| /home/peter/f3.dbf | table3.2 |
-----------------------------------
Когда я запускаю мою процедуру он должен показать что-то вроде этого:
File: f1.dbf
Table1.1
Table1.2
File: f2.dbf
Table2.1
File: f3.dbf
Table3.1
Table3.2
Я попробовал следующую процедуру:
create or replace procedure files(p_user IN dba_segments.owner%type)
is
cursor c_cursor is
select d.file_name, s.segment_name, s.segment_type
from dba_data_files d, dba_segments s
where segment_type = 'TABLE'
and s.owner=p_user;
v_cursor c_cursor%rowtype;
begin
for v_cursor in c_cursor loop
if v_cursor.segment_type='TABLE' then
dbms_output.put_line('File' || v_cursor.file_name);
dbms_output.put_line(' Table Nº:'' '|| v_cursor.segment_name);
end if;
end loop;
end files;
/
Но результат моей процедуры выглядит следующим образом:
File: /home/peter/f1.dbf
Table1.1
File: /home/peter/f1.dbf
Table1.2
File: /home/peter/f2.dbf
Table2.1
File: /home/peter/f3.dbf
Table3.1
File: /home/peter/f3.dbf
Table3.2
Надеюсь, я хорошо объяснил и поблагодарил вас за помощь.
* Никогда * Используйте запятые в 'п от'. * Всегда * используйте правильный, явный синтаксис JOIN. –
@ GordonLinoff Большое спасибо за совет. – Randomuser1204281
@ Randomuser1204281 Вам также нужно заказать по файлу. – BobC