私はこのようなものをコーディングしようとしています
CREATE OR REPLACE PROCEDURE EMAIL_TABLE (errbuf OUT VARCHAR2,
retcode OUT NUMBER
) is
cursor head is
select column_name
from all_tab_columns a
where table_name= 'EMP'
order by column_id;
cursor line is
select column_name
from all_tab_columns a
where table_name= 'EMP'
order by column_id;
count3 number;
count4 number;
lines1 varchar2(3000) := '';
lines2 varchar2(3000) := '';
count1 number;
count2 number;
header1 varchar2(3000) := '';
header2 varchar2(3000) := '';
BEGIN
count2 := 0;
select count(1)
into count1
from all_tab_columns a
where table_name= 'EMP';
FOR I IN head LOOP
count2 := count2+1;
IF count2 != count1 THEN
header1 := header1||'"'||i.column_name||'"'||',' ;
ELSIF count1 = count2 THEN
header1 := header1||'"'||i.column_name||'"' ;
END IF;
END LOOP;
header2 := header1;
count4 := 0;
select count(1)
into count3
from all_tab_columns a
where table_name= 'EMP';
FOR I IN line LOOP
count4 := count4+1;
IF count4 = 1 THEN
lines1 := lines1||''''||'"'||''''||'||'||i.column_name ;
ELSIF count4 != count3 THEN
lines1 := lines1||'||'||''''||'"'||','||'"'||''''||'||'||i.column_name;
ELSIF count3 = count4 THEN
lines1 := lines1||'||'||''''||'"'||','||'"'||''''||'||'||i.column_name||'||'||''''||'"'||'''' ;
END IF;
END LOOP;
lines2 := lines1;
FND_FILE.PUT_LINE(fnd_file.output, header2);
EMAIL_TABLE2(lines2);
END;
/
CREATE OR REPLACE PROCEDURE EMAIL_TABLE2(abc in varchar2) is
xyz varchar2(1000);
cursor lines is
select abc a from EMP; -- This is not working
BEGIN
for i in lines loop
FND_FILE.PUT_LINE(fnd_file.output,i.a);
end loop;
END;
/
上記は並行プログラムとして登録され、fnd_file.pu_lineはo || req_numebr||.outに作成されます。このファイルをメールに添付して郵送します。
Outfileは次のようになります。
"NAME","EMP_ID","DEPT","SAL"
"JOHN","101","IT","10000"
"ROB","102","SALES","8000"
最初の行はall_tab_columnsのヘッダーであり、行はパラメーターとして渡されるテーブルの行です。
plzは、上記が機能するかどうか、またはそれ以外の方法でそれを行う方法があるかどうかを知らせてくれます。ありがとう