• 締切済み

OracleのInsert/Selectにて

Oracle Database 11g で、対象のテーブルにInsert/Select文を実行すると、Selectの件数とInsertされた件数が違います。 制約に引っかかっている訳ではないのにこの現象が発生しており、困惑しております。 原因や解決方法がお分かりの方が居ましたら、ご教授ください。 また同じような現象が発生した方や回避方法があれば情報頂きたいです。 宜しくお願い致します。

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

みんなの回答

  • h271015
  • ベストアンサー率71% (62/87)
回答No.1

環境等が分からないので何ともいえませんが、「SQL文がおかしい」か「製品の不具合」かのいずれかになると思いますが、後者だとするとどうしようもないのでサポートに問い合わせてみるのが良いと思います。

関連するQ&A

  • 「SELECTして取得できない場合、INSERT」の不完全さの改善

    はじめまして。 ユニークキー設定しているカラムに、 SELECTして取得できない場合、INSERTの処理をすると 違うセッションでタイミングによってINSERTがエラーになってしまうと思います。(以下参照) -------------------------------------- 時間  SESSION1     SESSION2 ↓    SELECT→× ↓                SELECT→× ↓    INSERT→○ ↓                INSERT→× -------------------------------------- この様な場合、SESSION2を生かすには、その後SELECTを再度実行すればよいと思うのですが、他によい方法はないのでしょうか? 何かございましたら、ご教授お願いいたします。 各バージョン MySQL5.0 (PHP5.1)

  • SELECT実行中にINSERTしたい

    テーブルTに対し、データ抽出に数分かかるようなSELECT文を実行しているとして、 そのSELECT文の実行中にInsertしたらどのような挙動になるでしょうか。 (INSERTした瞬間にエラーが発生する?) また、SELECT文の実行中にInsertしたら、 「SELECT文が実行終了するまで待って、そのあとにINSERTする」 という動きにしたい場合、どのように設定(or SQLを書けば?)すればよいでしょうか。

    • ベストアンサー
    • MySQL
  • Access にて DISTINCROW を使用した INSERT SELECT

    お世話様です。 Access2003 VBAにて、DoCmd.RunSQLを使用してSQL文を流す際、 普通のINSERT-SELECT文はOKですが、 そのSELECT文にDISTINCROW句を使用していると、 数百件程度のSELECT結果しかINSERTできません。 本当は数千件のSELECT結果をINSERTしたいのですが、 これを実行した場合、エラーにもならず、1レコードもINSERTされません。 ためしに、DINSTINCTROWではなく、SQL文を変更してDISTINCTにしてみたところ、 2000件以上でもINSERTできました。 DISTINCROW句を使用して数千件でもINSERTできる方法はあるでしょうか? ちなみにSELECT単体ですと、DISTINCTROWを使用していながら、 数千件でも結果を表示できます。 SQL例: str_SQL = " INSERT INTO 結果テーブル(フィールド1, フィールド2, フィールド3)  SELECT DISTINCTROW A.項目1, A.項目2, B.項目1  FROM テーブル1 A, テーブル2 B  (WHERE句はあってもなくても現象変わらず)  ORDER BY A.項目4 ASC, A.項目5 ASC " DoCmd.RunSQL (str_SQL) よろしくお願いいたします。

  • accessとオラクルの連携について

    お世話になります。アクセスでテーブルのデータをSQL文で取得し、 そのデータをオラクルのテーブルにinsertしたいと思ってます。 ただ、フィールドの数が40個もあるので insert into ・・・・Fields(0),Fields(1)・・・・ と記述するのはかなり面倒なので何かいい方法はないでしょうか よろしくお願いします。 なお、access側とオラクル側のテーブルは同じ型です。 ’ローカルテーブルのデータを取得 rec.Open "select * from tesuto", cnn ’取得したデータをinsertする Do Until rec.EOF sql= insert into value(Fields(0),Fields(1),・・・ rec1.Open "select * from tesuto1", cnn1 Loop

  • トランザクションとlast_insert_id

    トランザクション中にinsertする予定のテーブル(未コミット)のauto_increment値を取得することはできるのでしょうか。 以下のような処理を期待しているのですが、hoge1テーブルのauto_increment値が取得できずに困っております。last_insert_id に関わらず、hoge1テーブルのauto_increment値が取得できる方法があれば教えてください。 (1) トランザクション開始 (2) $sql=" INSERT INTO hoge1(name) value('あああ'); "; (3) ( ロールバック ) (4) $key=mysql_insert_id(); (5) $sql2=" INSERT INTO hoge2(hoge1_primary,age) value($key,'20歳'); "; (6) ( ロールバック ) (7) コミット (8) トランザクション終了 よろしくお願いします。 環境: php5,mysql5 (InnoDB)

    • ベストアンサー
    • MySQL
  • バルクINSERT直後に、最後のIncremet値は取得できますか?

    PHPからMySQLへトランザクションを使わずに、 INSERT INTO test (id,count) VALUES (5,5),(6,6) のようにINSERTした直後に、SELECT LAST_INSERT_ID(); としても、5が返却されてしまいます。 これはMySQLの仕様でしょうか? 又、 SELECT LAST_INSERT_ID() ではなく、 SELECT LAST_INSERT_ID() FROM test; のようにテーブル名を指定する方法は何か意味があるのでしょうか? テーブル名を指定すると、テーブルにあるレコード数分 データが返却されてしまいました。。

    • ベストアンサー
    • MySQL
  • Oracleのデータをマージする

    以前、MySQLでのマージ方法について質問した者です。 今度は、Oracleでのマージ方法ですが、 重複行が発生して困っております。 状況としては、スキーマが二つあります。db1とdb2です。 それぞれ、同じ構造のテーブルを持っていて、格納しているデータだけが違います。 db1にdb2をマージしようとしているのですが、上手くいきません。(重複行が発生します) 方法として、以下の2パターンを試行しました。 (1)インポート    db1をインポートした後に、同じスキーマにdb2からのダンプファイルでインポート   (2)ダイレクトパスインサート    insert/*+ APPEND */ into db1.myTable (SELECT * FROM db2,myTable);. 以下は当方の使用環境です。 Windows7 Pro 64Bit Oracle11g Standard Edition 他に必要な情報があればお聞かせください。 よろしくお願いします。

  • AccessDBへのInsertとSelectタイミングについて

    AccessDBへのInsertとSelectタイミングについて 現在.NET Framework 3.5にて業務アプリを開発しています。 主にデータベース編集を目的としたアプリです。(DBはAccess2000) Insert/Deleteについては、データソース接続し、TableAdapterのクエリを利用しています。 Selectについては、Microsoft.Jet.OLEDB.4.0経由で取得しています。 このような条件で、Insert/Delete処理を行った直後にSelect処理でデータを取得 すると、Insert/Deleteが反映されていないデータが取得されてしまいます。 これを回避する方法を教えてください。 (非常に低レベルな質問かと思いますが、何卒よろしくお願い致します。)

  • Oracleをインストールしたら・・・

    Oracle Database 10g (トライアル版)をダウンロードしたのですけど、PCを立ち上げるのも、IEを立ち上げるのにもとにかく時間がかかってしまいます。この現象を回復する方法はないのでしょうか? もしOracle Database 10g をアンインストールするしか方法がないのだとしたら、どのアプリケーションを削除したらよいのでしょうか? アプリケーションの追加と削除で表示されているものを日付で参照することは出来るのですか?よろしくお願いします。

  • Insert Into Select での重複について

    DB:SQLServer2000 こんにちは お世話になっております。 トランザクションのテーブルA から ワークのテーブルBへInsert Into Select を使用してデータを格納しているのですが、その際に重複が発生してしまいます。 テーブルA 主キーあり テーブルB 主キーなし Delete B Insert into B select 項目1,項目2,・・・ from A With(Nolock) where 日付項目 = 20080101 テーブルAの主キー項目は全てテーブルBへInsertしており、Insert完了後のテーブルBの中身を見ると、まれに全く同じデータが2件出来ていることがあります。 このInsert into selectが実行されている間に、テーブルAに対して登録更新が行われることもあります。 色々と試してはいるのですが、原因が特定できずに困っております。 もし何かお気づきになられる方がいらっしゃいましたら、ご教示下さい。 よろしくお願い致します。