手続き中に操作を実行しようとしていますが、それは私のためには機能しません。ファイルの名前を繰り返し表示せずに、テーブルの横にファイルの名前を表示したいと思います。私の手続きでスタックされている[ORACLE]
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: f1.dbf
Table1.1
Table1.2
File: f2.dbf
Table2.1
File: f3.dbf
Table3.1
Table3.2
:私は私の手順を実行すると
-----------------------------------
| 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: /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あなたはfile_nameでも注文する必要があります。 – BobC