- - PR -
SQL*Loaderでのテーブル名の扱いについて
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-15 18:31
こんにちは。
初歩的な事なのかもしれませんが、ネット上で調べても対策案が見つからず、 こちらに投稿させて頂きました。 現在、SQL*Loaderを用いて、DB(Oracle8i)へデータの追加を行っているのですが、 名前に「・」を含むテーブルがあった場合... SQL*Loader-350: 27行に構文エラーが発生しました。 英数字以外の不適切な文字があります。 INTO TABLE ○○○○○・△△△マスタ ^ ...というエラーが発生してしまいます。 また、"(ダブルクォーテーション)で囲んで、実行しても... SQL*Loader-941: 表 "○○○○○・△△△マスタ"の記述中にエラーが発生しました。 ORA-04043: オブジェクト"○○○○○・△△△マスタ"は存在しません。 ...となってしまいます。 SQL*Loaderでは「・」を含むテーブルの実行は不可能なのでしょうか? また、実行可能であればその方法を教えて頂けませんでしょうか? ご教授の程、宜しくお願いします。 | ||||||||||||
|
投稿日時: 2004-11-16 09:17
質問に対して質問で申し訳ないですが、
これって"・"(中黒)のことでしょうか? Oracleのオブジェクト名には"_"、"$"、"#"以外の記号は使えないと思っていたので。 可能であればテーブル名を変更してしまうのが手っ取り早いと思います。 あとは同レイアウトの別テーブルを作成し、そのテーブルにデータを流し込んだ後に「INSERT INTO 〜 AS SELECT 〜」で登録する。というところでしょうか。 | ||||||||||||
|
投稿日時: 2004-11-16 13:14
表名の「・」が、実は文字に対応していないコードだったりしてません?
(user_tables の table_name を dump() で 16 進表示させて確認できる...か?) # オブジェクト名がマルチバイト。過去のトラウマが(ぶるぶる) | ||||||||||||
|
投稿日時: 2004-11-16 13:33
早速のお返事有難うございます。
はい、そうです。
現在、テーブル名には全角の漢字を使用しています。 SQL*plusにてそのままinsertすると、「・」に対するエラーが発生してしまいますが、 「"」(ダブルクォーテーション)で囲めば実行可能です。 今回、処理速度の関係上、SQL*Loaderで実現しようと考えています。 しかし、SQL*Loaderでは「"」で囲んでも、エラーとなってしまいます。 …という話があり、その対処方法があれば…?という質問でした。 もっと詳細に書いておけば良かったですね…申し訳ありませんでした。 |
1