2016-08-27 5 views
0

私はそうでテキストの一部をスキップするSQLローダーを使用してデータを格納する方法?

c1 c2 c3 
-- --- --- 
1 a hii 
2 ab hii 
3 abc hii 

として「デモ」という名前のテーブルにデータを格納するデータファイル

1#text:a#hii 
2#text:ab#hii 
3#text:abc#hii 
4#text:abcd#hello 
5#text:abcde#hello 

を次のSQLローダーを実行したいです。 c2の長さは任意の長さにすることができるため、私は位置を使用できません。

このためにctlファイルを作成するにはどうすればよいですか?

答えて

0

区切り文字で区切り文字を使用すると、これを行うことができます。ここ

制御ファイル

負荷データは

INFILEある*

テーブルデモ ( ':'、 C2、C3 C1、によって終了 X充填剤)に追加します

begindata

1#テキスト#のHII

2#テキスト:AB#1 HII

3#テキスト:ABC#1 HII

4#テキスト:ABCD#ハロー

5#テキスト: abcde#hello

ここで、xは値が 'text'に設定されたダミー列(表には存在しません)です。

0

カラムの主な分離と思われる#を検索すると仮定すると、位置検出を使用できます。最初の#の位置を検索し、次の5文字( 'text:')をサブストリングします。次に、次のハッシュの位置を見つけます。結腸の位置などを使用してください。

charindex()をsqlで確認してください。 3番目の引数を使用すると、検索オフセットを設定できます。

関連する問題