• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:効率のよい方法を教えてください。【Oracle8】)

Oracle8で効率的なデータ入力方法とは?

このQ&Aのポイント
  • Oracle8.1.7で開発中の際に効率的なデータ入力方法を教えてください。
  • テーブル1とテーブル2において、DT番号のフィールドにデータを入力する方法を探しています。
  • 現在の方法では効率的ではないため、より効率的な方法を教えていただきたいです。

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

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

フィールドに入れる、ってINSERTのことでしょうか? テーブル2のDTは5列固定なのでしょうか? であるとして回答します。 テーブル1にDecodeとMaxをかけてやるSelect文を作ればいいと思います。 -------------------------------------------- Select 型名 ,Max(Decode(DT番号,1,データ,Null)) As DT1 ,Max(Decode(DT番号,2,データ,Null)) As DT2 ,… From テーブル1 Group By 型名 -------------------------------------------- こんな感じでしょうか。 あとはこれを元にInsertすれば良いです。

mybigbaby
質問者

お礼

早速のご回答、ありがとうございます。 やりたいことがすんなりできました!! ほんとに困っていたので、とても助かりました。 こういうやり方もあるのですね。 まだまだ勉強が足りないようです。 ありがとうございましたm(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Oracle8での数値チェック

    現在、Oracle8.1.7で開発しております。 検索する条件として、『数値かどうか』または『文字列かどうか』 という判断を行いたいのですが可能でしょうか? やりたい事は、以下のデータの右から2桁目が数値となっているものと 文字列になっているものとを区別したいのです。  ○○○○-A01  ○○○○-C99  ○○○○-AB1  ○○○○-Z21     : 設計上、すべてのフィールドは『VARCHAR2』となっています。 よろしくお願いしますm(_ _)m

  • 【Oracle】Countの方法

    現在、Oracle8.1.7で開発をしております。 データの件数を数えたいのですが、やりたいことが複雑なので、うまくいきません。 以下のようなテーブルがあったとします。 テーブルA 商品名 ID 検査  A   1  ○  A   2  △  A   3  ×  B   4  -  B   1  ○  B   2  ○  B   3  △  C   1  ○  D   1  △ 商品名と、IDがキーとなっています。 商品名に対して、IDは複数存在しますが、 いくつあるかはわかりません。 このとき、1つでも『×』が存在したら、 その商品名は『×』として数えたいのです。 優先順位としては、  ×>△>○>- です。 ちなみに、上記のような場合には、 ×:1商品(A) △:2商品(B・D) ○:1商品(C) としたいのです。 データの件数が多いので、何かよい方法があったら 教えて下さいm(_ _)m

  • 【Oracle】欲しいデータを含めて、100件のデータを抽出したい。

    現在、Oracle8.1.7を使用して開発しています。 例えば、以下のようなデータがあるとします。 <TABLEA>  名前    :  ←たくさんあるというイミです。  abcdefg  bbbeeee  ccccccc  cccccc1   :  ←たくさんあるというイミです。 このような場合、「ccccccc」のデータを含む、 前後合わせて100件のデータを抽出したい場合には どのようにすればよいのでしょうか? ちなみに、「名前」というフィールドのデータは バラバラです。

  • 効率のよい方法があったらお教え下さい

    下記の仕様を元にAccessでプログラムを組もうと考えています。 「プログラムをするにあたっての方法」のように組もうと考えているのですが、効率が悪いように何となく感じています。 もし、こういった方法でプログラムしたらという方法がありましたらお教え下さい。 ------------------------------------------------------- 仕様 ------------------------------------------------------- TABLE1とTABLE2があります。 TABLE1は履歴蓄積テーブル。 TABLE2は新規インサート用テーブルです。 両テーブルともにIDフィールドがあります。 TABLE1に取得IDが無ければ、TABLE2にインサート。 TABLE1に取得IDが存在すれば、TABLE2にインサートをおこなわない。 取得IDはテキストファイルにあります。 ------------------------------------------------------- プログラムをするにあたっての方法 ------------------------------------------------------- TABLE1のレコードセットを取得 取得IDをキーにTABLE1のレコードセット・IDフィールドを検索 取得IDがレコードセットに無ければ Insert文でTABLE2に挿入 取得IDがレコードセットに有れば Insertをおこなわない テキストのIDがEOFになるまで繰り返し 終わり

  • Oracle9i フィールドのデータ型の取得方法

    Windows版のOracle9iで、テーブル名とフィールド名を指定して、フィールドのデータ型を取得する方法を教えてください。 ちなみに DESC テーブル名 では複数フィールドのデータ型が取得されますが、あくまでも特定のフィールドのデータ型を取得したいです。

  • 異なるOracleサーバ上のテーブルを結合する方法

    異なるOracleサーバ上のテーブルを結合する方法 IPアドレスが異なるOracleのテーブルを結合して出力したいのですが可能でしょうか?2つのテーブルをローカルにダウンロードして結合表示するとパフォーマンスが悪いので、2つのサーバから直接データをダウンロードしたいのです。2つのOracleサーバは読み取り権限しか与えられておらず、SELECT文ぐらいしか使えません。 Oracle 10G Windows 2003 Server

  • Oracle8iでテーブルをエクスポートする方法

    Oracle10gを使用しています。Oracle8iから特定のテーブルを抽出してOracle10gに入れようとしましたが、Oracle10gのexpコマンドは互換性の問題で8iに対して使えませんでした。そこでOracle8iのexpコマンドを使用しようかと考えましたが、テーブルごとのエクスポートができないとのことで不可(データベースが大きすぎるため、そもそも8iのExpコマンドを実行できる権限を持っていないのでできませんが)。 仕方がないのでExpコマンドはあきらめて、テーブル定義抽出→データをCSVまたはSQLで抽出という手順でデータを移そうかと考えています。データの抽出はできたのですが、テーブル定義の取得は10gで使えるdbms_metadata.get_ddlが使用できないので取得できずにこまっています。8iでテーブル定義を取得するにはどうしたらいいのでしょうか? なお当方8iのデータベースのSystem/Sys権限を所有していないません。また8iがインストールされているサーバへログインすることもできません。それを考慮した上で実現可能な方法をご提示願います。

  • 効率的な方法を考えているのですが・・・

    php,mysqlの連携で中古車サイトを作っています。 まだテーブル校正の段階なのですが早速つまづいてしまいました><; テーブルcar id,name,price,maker_id,icon_flg(実際にフィールド数は30あります) 1,車名1,129.8,1,'アイコン' 2,車名2,109.8,2,'アイコン' 3,車名3,98.9,3,'アイコン' ---略--- テーブルmaker id,name 1,メーカー1 2,メーカー2 3,メーカー3 ---略--- テーブルicon(実際には20のデータがあります) id,name 1,4WD ---略--- 20,ETC テーブルicon_image(実際には20のデータがあります) id,path 1,img/01.gif ---略--- 20,img/20.gif テーブル校正は上記のような形式です。悩んでいる箇所はテーブルcarのicon_flgの値の書き方です。 考えた方法としては 1:『100100111』のようにして1であれば成立0であれば不成立 2:icon1~icon20までのフィールドを用意し1であれば成立0であれば不成立 この2パターンくらいしか思いつかなかったのですがどちらが一般的な方法なのでしょうか? 1の方法は5個程度の少ないアイコンであれば登録する際に判断も容易なのですが20個と多いので 後々苦労もありそうな気がし2の方法はアイコンのために20個のフィールドを増やすというのに抵抗が・・・ また、両者の場合ともINNER JOINでidを参照するという方法もどう判断していいものかが 判断できない(特に1の場合)のですがどのようなsql文を書けばいいのでしょうか? php,mysqlどちらも5です。他の方法でも構いませんので詳しい方がいらっしゃいましたら アドバイスをお願い致します!

    • ベストアンサー
    • MySQL
  • 一つのテーブルの全てのフィールドを一気に半角にする方法

    テーブル1に フィールド1、フィールド2、フィールド3・・・と多数のフィールドがあり、 全ての全角文字を半角にしたいのですが 更新クエリで UPDATE テーブル1 SET テーブル1.フィールド1 = StrConv([テーブル1]![フィールド1],8); UPDATE テーブル2 SET テーブル2.フィールド2 = StrConv([テーブル2]![フィールド2],8); とフィールドつづやってくしかないですかね? もっと効率のいい方法があれば教えてください! よろしくお願い致します。

  • 【ORACLE】外部のレコードとの比較。

    現在、ORACLE8.1.7で開発しております。 以下のようなテーブルが3つあります。 【マスタ】     【変換マスタ】     型名       型名  変換型名    ---------    --------------------    AAA       AAA   a       BBB       BBB   b_       CCC       CCC   c_d              【商品マスタ】  番号 商品名 -----------   1 a   2 abc   3 b   4 bc   5 bcd   6 c   7 cc   8 ccd   9 cccd  1)マスタから変換マスタを型名をキーにして検索。  2)1)で取得した変換型名をキーにして、商品マスタを検索。    このとき、完全一致ではなく、あいまい検索で行う。    ※ここで抽出されるのは、これです↓     1 a     2 abc     4 bc     5 bcd     8 ccd にたような質問がありましたので、これを参考にして、先頭が一致するものはできました。 しかし、ワイルドカード『_』が入った場合でのSQL文がどうしても書けません。 1行のSQL文で書きたいのですが、どなたがご存じの方がいらっしゃったら教えてください。 ≪先頭が一致するSQL文≫ SELECT 商品マスタ.番号,商品マスタ.商品名 FROM マスタ,変換マスタ,商品マスタ WHERE マスタ.型名 = 変換マスタ.型名 AND 変換マスタ.変換型名 = SUBSTR(商品マスタ.商品名,1,LENGTH(変換マスタ.変換型名))   ≪参考にした質問≫ http://oshiete1.goo.ne.jp/kotaeru.php3?q=375213