固定位置のフラット ファイルにエクスポートしたいアプリケーション データを保持する一時テーブルがあります。私が苦労しているのは、数値列 account_numbers の値の一部が null であることです。エクスポート中、NULL 値の行はスペースに置き換えられず、NULL として設定されます。パディングの前に列を char に変換する必要があると思われましたが、問題は解決していないようです。私は何が欠けていますか?
RPAD(To_char(i.Account_Number),11,' ')
テーブル挿入データを作成します。
create table V_APPLICATION_INSTANCE
(
account_number NUMBER(19),
created_date TIMESTAMP(6),
decision VARCHAR2(40),
name VARCHAR2(40)
);
insert into V_APPLICATION_INSTANCE (ACCOUNT_NUMBER, CREATED_DATE, DECISION, NAME)
values (1679669315, '09-SEP-16 10.43.51.932000 AM', 'APPROVED', 'TAF2214');
insert into V_APPLICATION_INSTANCE (ACCOUNT_NUMBER, CREATED_DATE, DECISION, NAME)
values (null, '31-AUG-16 12.41.53.331000 PM', 'APPROVED', 'TAF2234');
insert into V_APPLICATION_INSTANCE (ACCOUNT_NUMBER, CREATED_DATE, DECISION, NAME)
values (1528296849, '02-SEP-16 12.00.32.008000 PM', 'APPROVED', 'TAF1234');
insert into V_APPLICATION_INSTANCE (ACCOUNT_NUMBER, CREATED_DATE, DECISION, NAME)
values (null, '31-AUG-16 05.05.30.433000 PM', 'APPROVED', 'TAF1234');
フラットファイルにエクスポート:
Declare
pFile Utl_File.file_type;
fLine Varchar2(1024);
Begin
pFile := UTL_FILE.fopen('USER_TEMP', 'APPLIC_EXPORT.txt', 'w');
For i in (Select V.ACCOUNT_NUMBER ,V.CREATED_DATE,TRIM(V.DECISION) DECISION,TRIM(V.NAME) NAME From V_APPLICATION_INSTANCE V)
Loop
fLine := RPAD(i.Account_Number,11,' ') || ' ' || RPAD(i.Created_Date,30,' ') || ' ' ||
RPAD(i.Decision,25,' ') || ' ' || RPAD(i.Name,50,' ');
UTL_FILE.put_line(pFile, convert(fLine, 'WE8ISO8859P1', 'UTF8'));
End Loop;
UTL_FILE.fclose(pFile);
End;
出力:
===================================================== == == == =========== == == == == == == == == == =====
1679669315 09-SEP-16 10.43.51.932000 AM APPROVED TAF2214
31-AUG-16 12.41.53.331000 PM APPROVED TAF2234
1528296849 02-SEP-16 12.00.32.008000 PM APPROVED TAF1234
31-AUG-16 05.05.30.433000 PM APPROVED TAF1234
===================================================== == == == =========== == == == == == == == == == =====
期待される結果:
===================================================== == == == =========== == == == == == == == == == =====
1679669315 09-SEP-16 10.43.51.932000 AM APPROVED TAF2214
31-AUG-16 12.41.53.331000 PM APPROVED TAF2234
1528296849 02-SEP-16 12.00.32.008000 PM APPROVED TAF1234
31-AUG-16 05.05.30.433000 PM APPROVED TAF1234
===================================================== == == == =========== == == == == == == == == == =====
ありがとう