質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.99%

SQL*LoaderのZONEDによるエラーについて

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 3,467

miyaNOBU

score 9

-- test.ctl
LOAD DATA CHARACTERSET JA16SJIS
INFILE 'TEST' "str '\r\n'"
TRUNCATE 
INTO TABLE TEST
FIELDS TERMINATED BY ','
(
  SEQ               SEQUENCE( MAX ),
  TEST_VAR          CHAR  OPTIONALLY ENCLOSED BY '"', 
  TEST_NUM          ZONED(4,1),
  TEST_NUM2         ZONED(8,1) -- CHAR型だったり、この項目自体を削除すると動きます
)
-- 取り込み先テーブル
CREATE TABLE TEST
(
    SEQ                            NUMBER(30,0) NOT NULL,
    TEST_VAR                       NVARCHAR2(2),
    TEST_NUM                       NUMBER(4,1),
    TEST_NUM2                      NUMBER(8,1)
)
-- test.dad (取り込みファイル)
"mi",1011,11111
"ci",1010,11111

上記の要件を元に、test.dadファイルのデータをTESTテーブルに取り込みたいと考えています。
ファイルの要件としては、
文字列型が""で囲み、数値型は囲みません。

ただ、このままですと、取り込む際エラーが起きて、TEST_NUM2のせいで取り込めない状況です。

具体的には下記のような、エラーログが吐かれる状況です。

Column Name                  Position   Len  Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
SEQ                                                       SEQUENCE (MAX,1)
TEST_VAR                           FIRST    *  , O(")CHARACTER            
TEST_NUM                            NEXT    4        ZONED DECIMAL (4, 1) 
TEST_NUM2                           NEXT    8        ZONED DECIMAL (8, 1) 

レコード1: 拒否されました。- 表TEST,列TEST_NUM2でエラーが発生しました。
無効なゾーン10進数バイトです。

最大エラー件数を超えました - 上の統計が不完全な実行に影響しています。

どなたか、理由がお分かりになる方がいらっしゃいましたら、
ご教授いただけないでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

無効なゾーン10進数バイトです。

について調べると以下のようにあります。

SQL*Loader-00652: 無効なゾーン10進数バイトです。

処置: ログ・ファイルに対するSQL*Loader制御ファイルの指定を確認し、
フィールド位置を正しく指定してください。また、フィールドの内容も確認してください。

とあります。
こちらで確認したところ、次のように変更することでうまくいきました。

修正前)TEST_NUM2         ZONED(8,1)
修正後)TEST_NUM2         POSITION (*+1) ZONED(8,1)

サンプルデータ)"mi",1011,12345678
結果)
SEQ:1
TEST_VAR:mi
TEST_NUM:101.1
TEST_NUM2:1234567.8

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る