- PR -

SQL*Loaderでのテーブル名の扱いについて

1
投稿者投稿内容
pugtaro
会議室デビュー日: 2004/11/15
投稿数: 2
投稿日時: 2004-11-15 18:31
こんにちは。

初歩的な事なのかもしれませんが、ネット上で調べても対策案が見つからず、
こちらに投稿させて頂きました。

現在、SQL*Loaderを用いて、DB(Oracle8i)へデータの追加を行っているのですが、
名前に「・」を含むテーブルがあった場合...

SQL*Loader-350: 27行に構文エラーが発生しました。
英数字以外の不適切な文字があります。
INTO TABLE ○○○○○・△△△マスタ
^

...というエラーが発生してしまいます。
また、"(ダブルクォーテーション)で囲んで、実行しても...

SQL*Loader-941: 表 "○○○○○・△△△マスタ"の記述中にエラーが発生しました。
ORA-04043: オブジェクト"○○○○○・△△△マスタ"は存在しません。

...となってしまいます。

SQL*Loaderでは「・」を含むテーブルの実行は不可能なのでしょうか?
また、実行可能であればその方法を教えて頂けませんでしょうか?

ご教授の程、宜しくお願いします。
いーた
大ベテラン
会議室デビュー日: 2004/07/12
投稿数: 154
お住まい・勤務地: 東京
投稿日時: 2004-11-16 09:17
質問に対して質問で申し訳ないですが、
引用:

名前に「・」を含むテーブルがあった場合...


これって"・"(中黒)のことでしょうか?
Oracleのオブジェクト名には"_"、"$"、"#"以外の記号は使えないと思っていたので。

可能であればテーブル名を変更してしまうのが手っ取り早いと思います。
あとは同レイアウトの別テーブルを作成し、そのテーブルにデータを流し込んだ後に「INSERT INTO 〜 AS SELECT 〜」で登録する。というところでしょうか。
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2004-11-16 13:14
表名の「・」が、実は文字に対応していないコードだったりしてません?
(user_tables の table_name を dump() で 16 進表示させて確認できる...か?)


# オブジェクト名がマルチバイト。過去のトラウマが(ぶるぶる)
pugtaro
会議室デビュー日: 2004/11/15
投稿数: 2
投稿日時: 2004-11-16 13:33
早速のお返事有難うございます。

引用:

質問に対して質問で申し訳ないですが、
引用:

名前に「・」を含むテーブルがあった場合...


これって"・"(中黒)のことでしょうか?



はい、そうです。

引用:

Oracleのオブジェクト名には"_"、"$"、"#"以外の記号は使えないと思っていたので。



現在、テーブル名には全角の漢字を使用しています。
SQL*plusにてそのままinsertすると、「・」に対するエラーが発生してしまいますが、
「"」(ダブルクォーテーション)で囲めば実行可能です。
今回、処理速度の関係上、SQL*Loaderで実現しようと考えています。
しかし、SQL*Loaderでは「"」で囲んでも、エラーとなってしまいます。

…という話があり、その対処方法があれば…?という質問でした。
もっと詳細に書いておけば良かったですね…申し訳ありませんでした。
1

スキルアップ/キャリアアップ(JOB@IT)