SQLについて教えてください。
今、VBからORACLEデータベースにSQLを投げる処理を作っているのですが、
一つわからないことがあります。
例えば、アクセスでは、クエリで新しいテーブルを作成するという考え方がありますが
データベースがORACLEでも同じようなことができるのでしょうか?
別に新しいテーブルを作成することに執着するわけではなく、テーブルのデータを削除
してから、そのテーブルにSQLにて引っ張ってきたデータを入れる という
ものでもいいと考えています。そのやり方でもかまいませんので教えてください。
宜しくお願いします。
Oracle8.1.6 vb6
No.2ベストアンサー
- 回答日時:
VBでoo4oを使った場合なんですね・・。
前掲の例は、SQLのみで一発でテーブルの内容を別テーブルに移送する例です。
そしてSQLの結果を挿入したいテーブルを開いて書き込もうかと考えているのですが...下のように
> Set dynOra = dbOra.DbCreateDynaset(SQL, ORADYN_DEFAULT)
> dynOra.Addnew
> ...
> dynOra.update
それでもよいと思いますが、1件1件、VBで加工しなければならないほどのデータの加工を行った後に別のワークテーブルなどに移す場合でなければ、非効率になります。
特別な加工がなければ、まず、前掲の "INSERT ~ SELECT"句を Excecute して、一発のSQLでデータを移送した後、そのテーブルのダイナセットを開くことをお勧めします。
丁寧な回答ありがとうございます。
insert...valuesの形式しか知らなかったもので...
insert...selectの形式でやってみたいと思います。
ありがとうございました
No.1
- 回答日時:
全然問題なくできます。
ACCESSでいうテーブル作成クエリーは
CREATE TABLE ~ AS SELECT ~;
でできます。
また、いったんデータを削除したあと、データを挿入する場合は
全件削除する場合、
TRUNCATE ~;
一部の場合
DELETE FROM ~ WHERE ~;
したあと、
INSERT INTO ~ SELECT ~;
となります。
この回答への補足
やり方はテーブルのデータを削除してから、そこにデータを挿入することにしました。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
下記の問合せを行うクエリを、 ...
-
【SQL】他テーブルに含まれる値...
-
既存データをINSERT文にして出...
-
結合したテーブルをSUMしたい
-
SQLで、Join句で結合したテ...
-
テーブル名が可変の場合のクエ...
-
改行を含んだデータのインポート
-
2つのテーブルをLIKE演算子のよ...
-
Accessの構成をコピーしたい
-
ExcelのMatch関数のようなもの...
-
パススルークエリ&ACCESSテーブ...
-
(SQL)日数の計算
-
「都道府県の面積の大きい順に...
-
データ無し時は空白行にしたい...
-
テーブルデータの上書きをした...
-
追加クエリとパラメータのクリ...
-
グループごとの一番小さい値を...
-
ADO+ODBCでテーブルに接続する...
-
一つの項目に2つのデータが含...
-
複数のテーブルからデータを取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
テーブル名が可変の場合のクエ...
-
結合したテーブルをSUMしたい
-
既存データをINSERT文にして出...
-
SQLで、Join句で結合したテ...
-
データ無し時は空白行にしたい...
-
Accessの構成をコピーしたい
-
ACCESSのVBAにてExcelに行...
-
2つのテーブルをLIKE演算子のよ...
-
SQLサーバに対するSQL文で抽出...
-
ExcelのVLOOKUP関数の動作をMyS...
-
PRIMARY KEYのコピー
-
同一テーブル内での比較(最新...
-
ExcelのMatch関数のようなもの...
-
ADO+ODBCでテーブルに接続する...
-
Access 別のDBに対してDlookup...
-
改行を含んだデータのインポート
-
複数のテーブルからデータを取...
-
ACCESS クエリーでソートの不具合
-
副問合せを使わずにUNIONと同様...
おすすめ情報