SAK }‘ŠÙ
Oracle PL/SQL •Ò7 - •W€ƒtƒ@ƒCƒ‹ I/O utl_file.fopenAutl_file.put_line
UTL_FILE ‚ðŽg—p‚·‚邯AƒeƒLƒXƒgƒtƒ@ƒCƒ‹“üo—Í‚ð PL/SQL ‚Ås‚¦‚éB
(Oracle9i - 9.0.1 ‚Å‹@”\Šg’£‚ ‚è)
¡init.ora Ý’è
Ej:\oracle\admin\sak\pfile\init.ora ‚ɑГ–‚·‚é init.ora ‚É“üo—Í‚ð
‹–‰Â‚·‚éƒfƒBƒŒƒNƒgƒŠ‚ðŽw’肵‚È‚¢‚Æ UTL_FILE ‚̓Aƒxƒ“ƒh‚·‚éB
Ž„‚ÍuŽíXv‚̉ӊ‚ɒljÁ‚µ‚½B
###########################################
# ŽíX
###########################################
compatible=9.0.0
db_name=sak
utl_file_dir=g:\tmp,g:\tmp2
Eutl_file_dir=* ‚Æu*v‚ðŽw’è‚·‚邯–³§ŒÀ‚̃AƒNƒZƒX‚ƂȂéB
‚±‚ê‚ÍA‚«‚¿‚ñ‚ÆŽw’肵‚½•û‚ªˆÀ‘S‚©‚à‚µ‚ê‚È‚¢B
•¡”‚̃fƒBƒŒƒNƒgƒŠ‚ÍAƒJƒ“ƒ}u,v‹æØ‚è‚ÅŽw’è‚·‚éB
¡ƒtƒ@ƒCƒ‹ƒI[ƒvƒ“
declare
fno utl_file.file_type;
begin
fno := utl_file.fopen('g:\tmp', 'test.txt', 'R', 4002);
| | | | |_ ƒŒƒR[ƒh’·
| | | | ‰üs‚àŠÜ‚ß‚½ƒoƒCƒg’·
| | | | 1 ` 32767
| | | | ŒÃ‚¢ Oracle ‚Å‚Í
| | | | Žw’è‚·‚邯ƒGƒ‰[
| | | |_ R Input
| | | W Output
| | | A Append
| | |_ ƒtƒ@ƒCƒ‹–¼
| |_ ƒpƒX
|_ ƒtƒ@ƒCƒ‹”Ô†
...
...
end;
/
¡ƒtƒ@ƒCƒ‹ƒNƒ[ƒY
declare
fno utl_file.file_type;
begin
fno := utl_file.fopen('g:\tmp', 'test.txt', 'R');
...
...
utl_file.fclose(fno);
|_ ƒtƒ@ƒCƒ‹”Ô†
end;
/
¡ƒtƒ@ƒCƒ‹ƒNƒ[ƒY ALL
declare
fno utl_file.file_type;
begin
fno := utl_file.fopen('g:\tmp', 'test.txt', 'R');
...
...
utl_file.fclose_all;
|_ ƒI[ƒvƒ“’†‚Ì‘Sƒtƒ@ƒCƒ‹ƒNƒ[ƒY
end;
/
¡ƒtƒ@ƒCƒ‹ƒŠ[ƒh
declare
fno utl_file.file_type;
rec varchar2(1000);
begin
fno := utl_file.fopen('g:\tmp', 'test.txt', 'R');
begin
loop
utl_file.get_line(fno, rec);
| |_ ƒŒƒR[ƒhƒeƒLƒXƒg
|_ ƒtƒ@ƒCƒ‹”Ô†
...
...
end loop;
exception
when NO_DATA_FOUND then -- ƒŒƒR[ƒh AT END
null;
when OTHERS then
dbms_output.put_line ('** ƒŠ[ƒhƒGƒ‰[ **');
end;
utl_file.fclose(fno);
|_ ƒtƒ@ƒCƒ‹”Ô†
end;
/
¡ƒtƒ@ƒCƒ‹ƒ‰ƒCƒg
declare
fno utl_file.file_type;
rec varchar2(1000);
begin
fno := utl_file.fopen('g:\tmp', 'test.txt', 'W');
rec := 'aaaaaaaaaaaa';
utl_file.put_line(fno, rec);
| |_ ƒŒƒR[ƒhƒeƒLƒXƒg
|_ ƒtƒ@ƒCƒ‹”Ô†
utl_file.fclose(fno);
end;
/
¡ƒeƒLƒXƒgƒtƒ@ƒCƒ‹ƒŠ[ƒhƒTƒ“ƒvƒ‹
set serveroutput on;
declare
fno utl_file.file_type;
rec varchar2(1000);
begin
dbms_output.put_line ('start...');
fno := utl_file.fopen('g:\tmp', 'test.txt', 'R');
begin
loop
utl_file.get_line(fno, rec);
dbms_output.put_line (rec);
end loop;
exception
when NO_DATA_FOUND then -- ƒŒƒR[ƒh AT END
null;
when OTHERS then
dbms_output.put_line ('** ƒŠ[ƒhƒGƒ‰[ **');
end;
utl_file.fclose(fno);
dbms_output.put_line ('end');
exception
when OTHERS then
dbms_output.put_line ('** ƒGƒ‰[ **');
end;
/
¡ƒŒƒR[ƒhƒOƒ‹[ƒuƒV[ƒPƒ“ƒX”Ô†‚ð•t—^‚µ‚ÄACSV Œ`Ž®‚ŃeƒLƒXƒtƒ@ƒCƒ‹o—Í
set serveroutput on;
declare
cursor c1 is select “¾ˆÓæCD, •i”Ô
from Žó’m order by “¾ˆÓæCD, •i”Ô;
ct number;
svtkcd varchar2(20) := ' ';
fno utl_file.file_type;
rec varchar2(1000);
begin
dbms_output.put_line ('start...');
fno := utl_file.fopen('g:\tmp', 'test.txt', 'W');
for c1_rec in c1 loop
if svtkcd != c1_rec.“¾ˆÓæCD then
ct := 0;
svtkcd := c1_rec.“¾ˆÓæCD;
end if;
ct := ct + 1;
rec := '"' || ct
|| '","' || c1_rec.“¾ˆÓæCD
|| '","' || c1_rec.•i”Ô
|| '"';
utl_file.put_line(fno, rec);
end loop;
utl_file.fclose(fno);
dbms_output.put_line ('end');
exception
when OTHERS then
dbms_output.put_line ('** ƒGƒ‰[ **');
end;
/
¡Oracle PL/SQL •ÒŽ‘—¿
¡SQL Šî‘bŽÀ’n•ÒŽ‘—¿
¡SQL Šî‘b•ÒŽ‘—¿
¡SQL ƒ`ƒ…[ƒjƒ“ƒO•ÒŽ‘—¿
¡PostgreSQL •ÒAJAVA ServletAJSP •ÒŽ‘—¿
¡MySQL •ÒŽ‘—¿