• ベストアンサー

SQL*Loaderでexcel内のデータロード

Oracle初心者です。 掲題の通りなのですが、 excelのファイル内に記述されている表の データをSQL*Loaderでロードするには どうすればいいのでしょうか? まずexcelの表をcsvファイルにすればよいと思うのですが、csvファイルへの仕方がわかりません… 初歩的な質問ですが、よろしくお願いします。

  • Oracle
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 >>csvファイルへの仕方がわかりません… excelを保存する時に、CSV形式を選択すればいいですよ。 (^^ゞ

Ryo921
質問者

お礼

遅くなりました。ありがとうございます。

その他の回答 (1)

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

「ファイル」-「名前をつけて保存」を選択し、 「ファイルの種類」から「CSV (カンマ区切り) (*.csv)」を選択して保存すればCSVとして保存できます。 また、対象範囲をドラッグし、エディタなどに貼り付けるとタブ区切りになります。

Ryo921
質問者

お礼

ありがとうございます。参考になりました。

関連するQ&A

  • SQL*Loaderでのデータロード

    SQL*Loaderでデータロードを実行するとき ロードするテキストファイルのある列の部分が スペースのとき、テーブルで設定したデフォルト値 をロードさせたいのですが、どうCTLファイルで記述 すればよいのですか? 教えてください。おねがいします。

  • SQL*Loaderで既存のレコードの更新

    SQL*Loaderで既存のレコードがあったらUpdate処理を行いたいのですが 「Oracle7 Server ユーティリティ」に SQL*Loaderは、既存レコードがNULL列であったとしてもレコードを更新しません。 既存の行を更新するには、次の手順を利用してください。 1.データを一時表にロードする 2.相関副問合わせを持つSQL言語のUPDATE文を使用する 3.一時表を削除する とありますが、上記の1~3が具体的にどうすれば良いのか分りません・・・ 1.データとは、テーブルのデータ?それともロードファイルのデータ??   3.に削除とあるので、作成するのでしょうか?? 2・これはctlファイルに記述するでいいのでしょうか?? 記述の仕方は?? 3.ドロップコマンドはctlに記述でよろしいのでしょうか?? などなど・・ すみません、ご教授お願いできませんか??

  • sql*loader 数値のロード

    SQL*LOADERにて NUMBER(3,0)のフィールドに、小数点以下を含む数値をもったデータをロードすると 四捨五入か何かされて整数でデータがロードされてしまいます。 テーブル、CTLファイル、csvレコード、登録結果は以下のとおりです。 テーブル: CREATE TABLE tbl1 ( CLM001 NUMBER(3,0) NOT NULL, CLM002 VARCHAR2(30) ) CTLファイル: LOAD DATA INFILE 'tbl1.csv' BADFILE 'tbl1.bad' TRUNCATE INTO TABLE tbl1 FIELDS TERMINATED BY ',' TRAILING NULLCOLS ( CLM001, CLM002 ) csvレコード: 0.9,aaaaa 3.1,bbbbb 登録結果(SQL*LOADER実行結果): 1,aaaaa 3,bbbbb 小数点を含むデータをロード時にエラーとしたいのですが、何かいい方法ありますでしょうか? 環境はSQL*Loader: Release 9.2.0.1.0になります。

  • SQL*LOADER実行時のロードデータチェック

    Sql*Loaderを使用してCSVファイルを取り込む際に、取り込むCSVデータが5桁以上の場合はエラーとしたいのですが。 制御ファイルにどのような記述をすればよいかわかりません。どうか、ご教授お願いいたします。 ちなみに 5桁未満の場合は、0埋めを行っております。 具体的には、以下のような結果を出したいのですが。 ○ 1   ⇒ 00001(0埋めして取り込む) ○ 00001 ⇒ 00001(取り込む) ○ 00000 ⇒ 00000(取り込む) × 000001 ⇒ (取り込まない) ------------------------------------------------------------- 現状、以下のソースだと「1234567」のCSVデータをロードすると、 「34567」で取り込まれてしまいます。(エラー発生しない。) 【Sql*Loaderの制御ファイル】 LOAD DATA   (省略) TRUNCATE TRAILING NULLCOLS ( No_colum "LPAD(:No_colum,5,'0')" , No2_colum "LPAD(:No2_colum,5,'0')" ) 【tmp_tableの情報】 カラム:No_colum vchar2(サイズ:5) カラム:No2_colum vchar2(サイズ:5) ------------------------------------------------------------- どうか、ご教授よろしくお願いいたします。

  • SQL*Loaderで「オブジェクトが存在しない」というエラーが出ます

    SQL*Loaderでデータをインサートしたいのですが、 オブジェクトがあるのに、 「SQL*Loader-941: 表~の記述中にエラーが発生しました。 ORA-04043: オブジェクト~は存在しません。」というエラーが出力されます。 何が原因なのでしょうか? すみませんが教えて下さい!お願いします!

  • SQL*Loaderについて2

    SQL*Loaderを用いてOracleのテーブルにデータを格納しようと思っています。 格納するデータはテキストファイルです。 テキストファイルのデータはカンマ区切りになっているのですが、エラーとなってしまいます。 このテキストファイルをタブ区切りにすれば問題なく動くのですが、カンマ区切りでは無理 なのでしょうか? 現在作成のLoaderは下記になっています。 load data truncate into table DEPT fields terminated by X'09' trailing nullcols (DEPTNO ,POSTNO NULLIF POSTNO=BLANKS ,SAL NULLIF SAL=BLANKS ) 現在のデータは下記になっています。 1001,1234567,100000 1002,1234567,200000

  • SQL*Loaderで、データを加工してロードしたいです。

    SQL*Loaderを使ってデータをテーブルにロードしたいのですが、その際に、データを加工してロードしたいと考えております。 ◎使用するコントロールファイルのサンプル (項目1)(項目2)(項目3) 12345, abcde, ABCDE ◎使用するコントロールファイルのサンプル Load Data truncate Into Table "Sample" Fields terminated by ',' Optionally enclosed by '"' (  項目1,  項目2,  項目3,  項目4 EXPRESSION ":項目1(の下1桁)|| ' ' || :項目2(の下2桁)|| ' ' || :項目3(の下3桁)" ) まず、項目4には、項目1~3のデータを連結したものをロードしたいと考えております。 その際に、 項目4(6桁)="項目1の下1桁"+"項目2の下2桁"+"項目3の下3桁" となるようにしたいのですが、どのような関数を使ったらよいのでしょうか? また、連結する関数"EXPRESSION"とどのように組み合わせたらよいのか教えていただけないでしょうか? 思い当たる様々なキーワードでググってみたのですが、参考になるページを見つけることができませんでした。 「ヒントやるから自分で調べろ」みたいなお返事でも結構ですので、アドバイスをいただけますようお願い申し上げます。

  • SQL*Loaderについて

    SQL*Loaderを用いてOracleのテーブルにデータを格納 しようと思っています。 格納するデータはテキストファイルです。 しかし、NUMBER型にマイナスのデータ(-123.45)を格納 するとエラーになってしまいます。 原因としては、多分テキストデータの表示が"123.45-"と なっているからだと思います。 "123.45-"の表示でエラーとならずに"-123.45"と格納 されるようにすることは不可能なのでしょうか? 現在作成のLoaderは下記になっています。 load data truncate into table DEPT fields terminated by X'09' trailing nullcols (DEPTNO ,POSTNO NULLIF POSTNO=BLANKS ,SAL NULLIF SAL=BLANKS ) ちなみにSALがNUMBER型の項目です。

  • データ削除とSQL*Loaderでのインポート

    SQL*Loaderを使ってデータをインポートするのですが、既存データが存在するテーブルにインポートするため、実行前に、条件に一致する一部のデータを削除します。 ですが、SQL*Loaderでインポートが失敗した際には、元に戻したいと思っています。 そういう場合に、SQL*PlusからDELETEのSQL文を実行してから、SQL*Loaderを起動してインポートするとなると、SQL*Plusから抜けた時点でCOMMITされてしまいますよね?そのためSQL*LoaderでインポートがエラーになってROLLBACKされても、削除されたデータは元に戻らないですよね・・・。 全件削除なら、CTLファイル内でREPLACEを指定してインポートするのですが・・・ データの一部削除とSQL*Loaderでのインポートを一連の処理として、エラーの際にはROLLBACKさせられる方法はありますでしょうか? よろしくお願いします。

  • SQL Loaderを使いたい

    Oracleのバージョンは8、自分のPCには Oracle8Client(Application User) がインストールされています。 見よう見まねで制御ファイルを記述し、バッチファイルを作成したところ、 ( sqlldr USERNAME/PASSWORD@SID control= test.ctl ) コマンドプロンプトには以下のように表示されました。 「C:\SQL>sqlldr USERNAME/PASSWORD@SID control = test.ctl 'sqlldr' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。」 実行できない原因はどこにあるか教えてください。 1.そもそもSQL Loaderを利用できる環境になっていない (そのままでは使えなくて何かしら設定が必要とか) 2.コマンドがまちがっている (test.ctlのパスを記述しないとだめとか、SIDは要らないだとか) 3.制御ファイルがまちがっている どの可能性が一番高いでしょうか?