date_format_spec
句を使用して、特定の形式の日付データまたは時刻データ(またはその両方)が文字列フィールドに含まれることを指定します。この情報は、文字フィールドが日付データ型または時刻データ型に変換される場合、および文字列フィールドが日付列にマップされる場合のみに使用されます。
日付と時刻の書式を正しく指定する方法の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
date_format_spec
句の構文は次のとおりです。
MASK
句を使用して、データ型に対するデフォルトのグローバリゼーション書式マスクを上書きします。日付マスクを指定しない場合は、データ型に対する適切なグローバリゼーション・パラメータのデータベースのNLSパラメータ設定(セッションの設定ではない)が使用されます。NLS_DATABASE_PARAMETERS
ビューに、これらの設定が表示されます。
NLS_DATE_FORMAT
(DATE
データ型)
NLS_TIMESTAMP_FORMAT
(TIMESTAMP
データ型)
NLS_TIMESTAMP_TZ_FORMAT
(TIMESTAMP
WITH
TIME
ZONE
データ型)
以下の点に注意する必要があります。
NLS_NUMERIC_CHARACTERS
初期化パラメータのデータベース設定(NLS_DATABASE_PARAMETERS
ビューの設定)によって、文字データ型から数値データ型への暗黙的な変換に使用される小数点区切りが制御されます。
デフォルトの書式では、桁区切りは使用できません。
INTERVAL
句を使用して、フィールドに書式化された期間が含まれることを指定します。期間の型は、YEAR
TO
MONTH
またはDAY
TO
SECOND
のいずれかです。
次に、複雑なDATE
文字列とTIMESTAMP
文字列の使用例を示します。その後に、ロードが可能なデータ・ファイルのサンプルを示します。
SQL> CREATE TABLE emp_load 2 (employee_number CHAR(5), 3 employee_dob CHAR(20), 4 employee_last_name CHAR(20), 5 employee_first_name CHAR(15), 6 employee_middle_name CHAR(15), 7 employee_hire_date DATE, 8 rec_creation_date TIMESTAMP WITH TIME ZONE) 9 ORGANIZATION EXTERNAL 10 (TYPE ORACLE_LOADER 11 DEFAULT DIRECTORY def_dir1 12 ACCESS PARAMETERS 13 (RECORDS DELIMITED BY NEWLINE 14 FIELDS (employee_number CHAR(2), 15 employee_dob CHAR(20), 16 employee_last_name CHAR(18), 17 employee_first_name CHAR(11), 18 employee_middle_name CHAR(11), 19 employee_hire_date CHAR(22) date_format DATE mask "mm/dd/yyyy hh:mi:ss AM", 20 rec_creation_date CHAR(35) date_format TIMESTAMP WITH TIME ZONE mask "DD-MON-RR HH.MI.SSXFF AM TZH:TZM" 21 ) 22 ) 23 LOCATION ('infoc.dat') 24 ); Table created.
SQL> SELECT * FROM emp_load; EMPLO EMPLOYEE_DOB EMPLOYEE_LAST_NAME EMPLOYEE_FIRST_ EMPLOYEE_MIDDLE ----- -------------------- -------------------- --------------- --------------- EMPLOYEE_ --------- REC_CREATION_DATE --------------------------------------------------------------------------- 56 november, 15, 1980 baker mary alice 01-SEP-04 01-DEC-04 11.22.03.034567 AM -08:00 87 december, 20, 1970 roper lisa marie 01-JAN-02 01-DEC-02 02.03.00.678573 AM -08:00 2 rows selected.
info.dat
ファイルの内容は、次のようになります。これは、2つの長いレコードです。日付フィールド(09/01/2004
、01/01/2002
)とそれに続く時刻フィールドの間には、空白が1つあります。
56november, 15, 1980 baker mary alice 09/01/2004 08:23:01 AM01-DEC-04 11.22.03.034567 AM -08:00 87december, 20, 1970 roper lisa marie 01/01/2002 02:44:55 PM01-DEC-02 02.03.00.678573 AM -08:00