• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ORACLEでのSQLについて)

ORACLEでのSQLについて

このQ&Aのポイント
  • ORACLEデータベースでのSQL投げる処理について教えてください。
  • ORACLEでも新しいテーブルを作成することができますか?
  • データベースのテーブルにSQLで引っ張ってきたデータを入れる方法を教えてください。

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

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

VBでoo4oを使った場合なんですね・・。 前掲の例は、SQLのみで一発でテーブルの内容を別テーブルに移送する例です。 そしてSQLの結果を挿入したいテーブルを開いて書き込もうかと考えているのですが...下のように > Set dynOra = dbOra.DbCreateDynaset(SQL, ORADYN_DEFAULT) > dynOra.Addnew > ... > dynOra.update それでもよいと思いますが、1件1件、VBで加工しなければならないほどのデータの加工を行った後に別のワークテーブルなどに移す場合でなければ、非効率になります。 特別な加工がなければ、まず、前掲の "INSERT ~ SELECT"句を Excecute して、一発のSQLでデータを移送した後、そのテーブルのダイナセットを開くことをお勧めします。

tomoyui
質問者

お礼

丁寧な回答ありがとうございます。 insert...valuesの形式しか知らなかったもので... insert...selectの形式でやってみたいと思います。 ありがとうございました

その他の回答 (1)

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.1

全然問題なくできます。 ACCESSでいうテーブル作成クエリーは CREATE TABLE ~ AS SELECT ~; でできます。 また、いったんデータを削除したあと、データを挿入する場合は 全件削除する場合、 TRUNCATE ~; 一部の場合 DELETE FROM ~ WHERE ~; したあと、 INSERT INTO ~ SELECT ~; となります。

tomoyui
質問者

補足

やり方はテーブルのデータを削除してから、そこにデータを挿入することにしました。 SQLにて抽出したデータを"INSERT"することはわかるのですが、抽出したデータを ダイナセット等に保持するにはどうすればいいのですか? Set ssOra = CreateObject("OracleInProcServer.XOraSession") Set dbOra = ssOra.OpenDatabase(DB, PASS, ORADYN_DEFAULT) Set sqlOra = dbOra.CreateSql(gSamarySQL, ORADYN_DEFAULT) として sqlOra.Refresh で現在実行しています。 そしてSQLの結果を挿入したいテーブルを開いて書き込もうかと考えているのですが...下のように Set dynOra = dbOra.DbCreateDynaset(SQL, ORADYN_DEFAULT) dynOra.Addnew ... dynOra.update 宜しくお願いします。

関連するQ&A