• 締切済み

Oracle 10g XE CSVからテーブル作成

いつもお世話になっております。 無償版のOracleデータベースの10g XEでCSVファイルを読込み、テーブルを作成しているのですが、 すべての行を読込みできません。 エラーは発生しないです。CSVのファイルサイズは1,971KB、行数は16,436行、列数は28列。 すべての行を読込み、テーブルを作成する方法はないでしょうか? それとも、XEで制限があるのでしょうか?

  • INDES
  • お礼率37% (10/27)
  • Oracle
  • 回答数2
  • ありがとう数1

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

10gXEにはメモリ1GB、データベースファイル合計4GBの制限があります。 すでに、領域を使い切っていたりするとエラーになるでしょう。 後、データベースファイルに使用状況が断片化していたりすると、制限値にかかりやすくなります。 時間に余裕があるのなら、テーブルの索引の削除と書きとめ、DB全体のエクスポート、DBCAでDBの削除と再作成、インポートと索引の作成を行えば。領域に余裕は出来ると思います。 領域制限意外の問題なら、そもそもエラーメッセージが出ていると思うのでそれを提示してください。

INDES
質問者

補足

回答有難う御座います。 原因はデータ型が数値の列にNULL文字が含まれていることにありました。 このファイルは無事に読み込むことが出来たのですが、 別のファイルで、日本語がデータに含まれるファイルの読み込みが一部しか出来ていないことがわかりました。 テスト用に1000行2列、1列目(数値型)、2列目(文字列型) CODE,NAME 10000,テスト用文字列1 10001,テスト用文字列2 ・ ・ ・ 10999,テスト用文字列1000 を読み込むと870行までのデータしか読み込まれません。 読み込み失敗のエラーも発生していません。 文字数を増やすと読み込む行数は少なくなります。 総文字数の制限のようなものがあるのでしょうか?

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

Application Expressのユーティリティを使っているということでいいでしょうか? >すべての行を読込みできません。 具体的にどれくらい登録されるのでしょうか? ロード実行後に結果画面に遷移すると思いますが、そこに表示されている行数もデータ数より少ないということですよね。 当方の環境で試したところ、単一列ではありますが3,645KB、266,561行のデータの取込みはできました。 (試したサイズや行数にはなんの根拠もなく、適当に大きめのファイルを用意しただけです) alert.logにも何も出力されていませんか?

INDES
質問者

補足

いつも有難う御座います。 データはスタートメニューから「オラクルのホームページに移動」で起動させた画面の ユーティリティ→データのロード→テキストデータのロードから読み込みをしています。 読み込まれる行数は16,407行です。 28行は読み込みに失敗していました。 エラーはORA-01722 数値に無効なデータがあります。 問題のあった行を確認すると、フィールドの型が「NUMBER」なのに、「NULL」が入っていました。 データに文字列が入っていたために、読み込みが出来なかったみたいです。 お騒がせしました。

関連するQ&A

  • OracleDatabaseのテーブル名

    無償版のOracle Database 10g XEを使用しているのですが、 CSVファイルをロードして、テーブルを作成する過程で、テーブル名を付けるところで、 日本語を混ぜて、Shift-JISで「TBL_AAA_第01表_統計データ」と入力し、次へ進むと、 エラーとなりテーブルを作成できません。「TBL_AAA_第01表」とすると作成可能ですが、何のテーブルか分からなくなります。 Oracleの文字数制限は30バイトだと記憶しているのですが、入力したテーブル名は計算すると27バイトで制限以内になります。 このテーブル名は使用できないのでしょうか?

  • アクセス2000 テーブル数

    アクセス2000のテーブル(列数)は制限がありますか? また、何百もあるCSVファイルをひとつのデーターベースにしたいが、てっとりばやくできる方法があるものでしょうか? アクセスはほぼ初心者です。簡単な方法がありましたら教えてください。よろしくお願いします。

  • テーブルにcsvファイルをインポートできない

    かなり困っています。REDHAT LINUXでpostgresのテーブルにpsqlからのCOPYコマンドでcsvファイルのデータをインポートしようとしているのですが、文字数オーバーのエラーがでてしまいます。テーブルは2列で1つ目の列はCHAR(10)で2列目はINT4型です。csvファイルの内容はとりあえず1行だけ入れていて「"1234567890","1234"」を入れています。コマンドはpsqlで「COPY テーブル FROM 'ファイルのパス' USING DELIMITER ","」で行いました。エラーはおそらくインポートしたデータがおかしくなって変な桁数になっているのですが、どういうふうにおかしくなっているのかがよくわからないので対策できません。

  • csvファイルを使ってMySQLのテーブルを更新し

    約2万件ある15個のカラムで構成されるMySQLのテーブルがあります。 このテーブルをcsvファイルを使って更新しようと考えています。 csvファイルにはレコードIDとあるカラムの変更する値の2つのセルで 構成されています。 行数は毎回異なりますが、だいたい300行前後です。 csvファイルの具体的イメージはこんな感じです。 id order ============ 2,  200 4,  10 7,  460 11,  35 MySQLのテーブルの方にも「id」と「order」というカラムが存在します。 java や PHP を使ってやる方法はわかるんですが、プログラムを作成しないで SQLだけで行いたいと考えています。 LOAD DATA LOCAL INFILE などがあることがわかったのですが、レコードを REPLACE  するのではなく、一部のカラムをアップデートしたい、ということです。 どなたか、教えて頂けると助かります。 よろしくお願い致します。

  • SQL*LoaderでCSVから指定した列のみインポートしたい。

    SQL*Loaderを用いてOracleのテーブルにデータを格納 しようと思っています。 格納するデータはカンマ区切りのCSVファイルです。 入力CSVファイルは他テーブル用のファイルなので、 ローダーで落とし込むテーブルとは列数が異なります。 ですので、「CSVの5列目の値をテーブルのAA_NOというフィールドに 格納する。ということが可能なのでしょうか?」 CSVファイルのある行が a,b,c,d,e,f というデータの場合、テーブルには a,e,f とインポートしたいのです。 よろしくお願いします。

  • ORACLEでのSQLについて

    SQLについて教えてください。 今、VBからORACLEデータベースにSQLを投げる処理を作っているのですが、 一つわからないことがあります。 例えば、アクセスでは、クエリで新しいテーブルを作成するという考え方がありますが データベースがORACLEでも同じようなことができるのでしょうか? 別に新しいテーブルを作成することに執着するわけではなく、テーブルのデータを削除 してから、そのテーブルにSQLにて引っ張ってきたデータを入れる という ものでもいいと考えています。そのやり方でもかまいませんので教えてください。 宜しくお願いします。 Oracle8.1.6 vb6

  • CSVの3行目だけを…

    はじめまして!Nakanoと申します。 えっと、以下質問になります。おねがいします。。 CGI/Perlを始めて1週間程度の素人なのですが、 CSVファイルをHTMLのテーブル表示させる 様にしたいなと思っています。 そこで用意したCSVファイルが5行と8列で カンマ区切りのみで構成されています。 このCSVファイルから3行目だけを抽出する方法 ってありますでしょうか? 1行目のみ表示や1行目以外の2行目以下全てを表示 させたりは出来たのですが、3行目だけを表示するの がどうしても分かりませんでした・・・・・ 何方様か。よろしければその辺の所を詳しくご指導 いただけないでしょうか? よろしくおねがいします。

    • ベストアンサー
    • Perl
  • AccessVBAにて動的にテーブルを作成する方法

    AccessVBAにて現在入力された値に従ってAccessVBAにて動的にテーブルを作成したいのですが方法がわかりません。 作成するテーブルの要件として列のデータ型は全てテキスト型で構わないのですが列数を可変にしたいのです。 対策をご存知の方ご教授願います。 宜しくお願いします。

  • ACCESS テーブルに2行目から取り込む方法

    Access2013で、 指定の場所に置いてあるCSVファイルに対して、 「リンクテーブルを作成してソースデータにリンクする」設定にてテーブルを作成し、 このCSVファイルが更新されても最新の状態にてレポートを出力できるようにしています。 しかしこのCSVデータが作成される仕様により、1行目に余計な文字列、2行目に項目名、3行目以降にデータが入っているため、毎回CSVデータの1行目を削除する手作業が発生しています。 2行目以降をリンクするようにするとか、テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?

  • 16384列を超えるCSVファイルについて

    xcelのVBAマクロ初心者のため、ぜひお知恵をお貸しください。 16384列をこえ、Excel上で全てのデータが参照できないCSVファイルがあり、(行は千程度) 一行目は文字列でかかれています。 例: a b C(以降は二万件) 1 ¥イチゴ¥トチオトメ ¥米¥ササニシキ 2 100 200 3 200 500 (4以降は1000行ほど) 1行目の文字列データを識別して別シートに一覧を表示するマクロを作成したいのですが、 (たとえば、¥米のグループのみを別シートに一覧表示する) こちらのマクロを作成する際、どういったやり方で行えばいいか全く思い付きません。 まず、この表示できないCSVファイルをどのようにすればうまくいくのでしょうか? 色々かんがえたのですが、まず、テキスト化させると、一行目、二行目がまとまってしまい、識別することができません。 表示可能な列数に分割することや、表示が可能なワードやアクセスにインポートする等はできるのでしょうか。 セキュリティのため、フリーソフトの類いは使えない状態です。 Excelは2016です。よろしくお願いします。