1

次の表があります。

create table o_newstdata1 (
field1 raw(8)
);

次の input.data ファイル:

0x12345678
0x1234
0x12

そのようなデータを o_newstdata1 テーブルに挿入するにはどうすればよいですか?

varchar データとしてロードしようとしました:

load data
INFILE '/export/home/mine/input.data'
replace
into table o_newstdata1
trailing nullcols
(
field1 varchar (8)
)

そして、次のような質問をしました:

select field1 from o_newstdata1 where utl_raw.cast_to_raw(field1) like '0x1234';

うまくいきませんが、何か提案はありますか?

4

3 に答える 3

1

データ型を RAW として指定すべきではありませんか?

ドキュメントから:

生のバイナリ データが RAW データベース列に「そのまま」ロードされる場合、Oracle データベースでは変換されません。CHAR 列にロードされる場合、Oracle データベースはそれを 16 進数に変換します。DATE 列または数値列にはロードできません。

このフィールドの長さは、制御ファイルで指定されたバイト数です。この長さは、データベース内のターゲット列の長さとメモリ リソースによってのみ制限されます。データ ファイルに文字長セマンティクスが使用されている場合でも、長さは常にバイト単位です。RAW データ フィールドを区切ることはできません。

于 2013-06-13T07:38:09.160 に答える