• ベストアンサー

オラクルでなぜLONG型はテーブルに1つだけなので

オラクルでなぜLONG型はテーブルに1つだけなのですか? 2つ以上だと何か困ることがあるのでしょうか?

  • Oracle
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.1

LONGは2GBまで扱える文字列型で、現在では非推奨の型です。一言で言えば、使用できるデータ量に限りのあった頃の名残なのでもはや気にしなくていいと思います。 LONGは1997年発売のOracle8で、非推奨になりました。その前のバージョンは1992年のOracle7。このころの出来事といえば、コンピュータの趨勢が、16ビットから32ビットに切り替わった頃。そのことから推測すると、16ビットマシンで扱えるファイルサイズの上限が2GBだったので、影響を受けて設けられた制約だったのではないかと思います。 ----------------------- LONG列を持つ表は作成しないでください。かわりにLOB列(CLOB、NCLOB)を使用します。LONG列は、下位互換性を維持するためにのみサポートされています。 また、既存のLONG列をLOB列に変換することをお薦めします。LOB列に適用される制限は、LONG列よりもはるかに少数です。さらに、LOBの機能性はリリースごとに拡張されますが、LONGの機能性はいくつかのリリースでは変化していません。 Oracleデータ型 http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05765-03/datatype.htm#17043

fxgame1224
質問者

お礼

なるほど。 ありがとうございました。

関連するQ&A

  • OracleのLONG型への insert について

    お世話になります。 ASP + Oracle8.0.5で開発中のシステムがあるのですが、 ASP上のテキストエリアに文章を記述して、OracleのテーブルのLONG型のカラムに対して insertを行うとエラーが起こってしまいます。 正しくは、全角で2000文字までは入力できるのですが、 それを越えてしまうと、ORA-01461エラー(LONG値はLONG列にのみバインドできます)という エラーが起こってしまい、カラムに対してinsertすることができません。 テーブルを見直してみたのですが、ちゃんとLONG型に設定してありました。 LONG型のカラムにデータを登録する際、4000バイト以上の文字列は挿入できないでしょうか? でもLONG型って、2GBまで使用できるはずでしたよね? ご教授のほど、よろしくおねがいします。

  • オラクルテーブルで受け付けない文字

    ACCESS97のデータベースで オラクルのテーブルを使用しています。 アクセスのテーブルではクエリーが実行できたのですが (実行時に読込めた) 名前を変更して、(リンクしている)オラクルテーブルで実施すると 上手く行きません。 オラクルテーブルでは、受けつけない文字があると聞いたことがあります。 例えば、 " や ' など。 このような文字 一覧がわかるページ等 ないでしょうか? 

  • オラクルのLONG RAW型のテーブルの操作方法と容量計算の仕方

    オラクル8.1.6で、LONG RAW型のカラムがあるテーブルへのインサート、アップデートの方法を教えてください。 Pro*Cで作成したツールはあるのですが、自分が少し扱えるPL/SQLでツールを持ちたいのです。BLOB型などはパッケージを使うということまではわかったのですが、LONG RAW型については、サイト検索しても見当たらないように思います。 また、テーブルの容量計算も通常のVARCHAR型やNUMBER方とは違うようです。VARCHAR型と同様の方法で計算してみたのですが、実際にPro*Cでテストデータをロードしてみたところ、見積もり以上のの容量を消費するようです。 よろしくお願いします。

  • Oracleのテーブルサイズ

    Oracle(8.0.5以降)で、テーブル毎のサイズを知りたいのですが、どこにその情報はあるのでしょうか? テーブルが拡張されてそれぞれどの程度のサイズになっているのか、また、何%程度使用しているのか等が知りたいのです。 以前に、Oracleのシステムテーブルにそのような情報をもっていると聞いたことがあるのですが、わかりません。 どなたかわかる方がいましたら、よろしくお願い致します。

  • Long型について教えてください

    Oracle9iを使用しています あるテーブルのカラムの中にLong型の物が あるのですがTriggerを使用してそのテーブルに レコードが登録されたらLogを取る様にしたいのですが Long型の部分を(Trigger内の)Select文が上手く取れないらしく成功しません。何か良い方法があれば教えて ください よろしくお願い致します

  • Oracleにて各テーブルの件数を調べる方法

    お世話になります。 Oracleにて各テーブルの件数を調べるSQLをご存知の方おられましたら、教えていただけませんでしょうか。 環境ですが、 Oracle: 8.0.6.0.2 SQL*Plus: 8.0.6.0.0 OS: Soralis SunOS 5.6 Generic 05181-33 July 2002 以上、よろしくお願い致します。

  • Oracleでテーブル変数のようなもの

    oracle9iで、SQLServerのようなテーブル変数みたいなものは、ありますか? 一時テーブルや、テーブル関数(表関数)ではありません。 ストアドパッケージで、一つの条件で使いまわし使用したいので。

  • オラクルのテーブルの領域について

    色々と探してみたのですが、オラクルのDB全体の大きさとか未使用領域を見ることは解ったのですが、個々のテーブルの領域や未使用領域を見る手段があれば教えてください。データを格納している個別テーブルです。 よろしくお願いします。

  • アクセスにオラクルのテーブルをリンク

    アクセスでオラクルのテーブルを ODBCでリンクしたいのですが そのとき オラクルのユーザー名を 例えば USERNAME で リンクしたいテーブルを TABLE1 として、 リンクすると アクセス 上では  USERNAME_TABLE1 と言う様に ユーザ名 + テーブル名 になってしまいます。 使用したいのは テーブル名だけなので できれば ユーザ名がつかないでリンクしたいのですが、そう言う事はできないのでしょうか?  テーブルの量がたくさんあるので あとから名前を変更するのが大変なんです・・・  

  • ORACLEテーブルを作成したSQLを調べたい

    バックアップに別サーバに同じORACLEテーブルを作成することとなりました。 どんなSQLでそのテーブルを作成したのか資料が無くてわかりません。 調べる方法を教えてください。よろしくお願いします。