例えば:次に、データベースのUSERテーブルにUserオブジェクトをバッチで追加する必要があります。 パブリッククラスUser{ //名前プライベート文字列名; //Ageprivate 整数年齢; //Genderprivate 整数の性別 } ほとんどの人は MySQL に精通しており、バッチ追加 SQL はこのように記述されると考えるかもしれませんが、そうではありません。この書き込み方法は MySQL では問題ありませんが、Oracle ではエラーが発生します。 MySQL の書き込み: ユーザーに挿入 (名前、年齢、性別) 価値観 ('val1_1'、'val1_2'、'val1_3')、 ('val2_1'、'val2_2'、'val2_3')、 ('val3_1'、'val3_2'、'val3_3'); Oracle の書き込み: // 複数の単一挿入 INSERT INTO USER (NAME,AGE,SEX) VALUES ('val1_1', 'val1_2', 'val1_3'); USER (NAME,AGE,SEX) に VALUES ('val2_1', 'val2_2', 'val2_3') を挿入します。 USER (NAME,AGE,SEX) に VALUES ('val3_1', 'val3_2', 'val3_3') を挿入します。 //バッチ挿入 INSERT ALL USER (NAME,AGE,SEX) 値 ('val1_1', 'val1_2', 'val1_3') に代入 USER (NAME,AGE,SEX) 値 ('val2_1', 'val2_2', 'val2_3') に代入 USER (NAME,AGE,SEX) 値 ('val3_1', 'val3_2', 'val3_3') に代入 デュアルから 1 つを選択します。 どちらの Oracle 書き込み方法も比較的面倒であり、バッチ挿入では挿入される列名の数がまったく減らないことがわかります。さらに、もう 1 つの厄介な点は、企業開発では、ソフトウェア システムが複数のデータベースをサポートする必要があることです。そのため、この新しく追加された操作は 2 つのデータベースに適応し、2 セットの SQL を維持する必要があり、開発コストが大幅に増加します。 それで、それを書くための普遍的な方法はあるのでしょうか?答えはイエスです。 一般的な執筆:ユーザーに挿入 (名前、年齢、性別) デュアルユニオンすべてから ('val1_1'、'val1_2'、'val1_3') を選択 デュアルユニオンすべてから ('val2_1'、'val2_2'、'val2_3') を選択 デュアルから ('val3_1', 'val3_2', 'val3_3') を選択 この方法により、プロセスが簡素化され、保守する SQL セットが 1 つ減り、両方のメリットを享受できるようになります。 以下は、XML ファイルでのさまざまな書き込み方法のコードです。 <!--MySQL バッチ挿入--> <挿入 id="batchInsertUser" データベース ID="mysql"> ユーザーに挿入 (名前、年齢、性別) 価値観 <foreach コレクション="userList" インデックス="インデックス" 項目="ユーザー" セパレーター=","> (#{ユーザー名},#{ユーザーの年齢},#{ユーザーの性別}) </foreach> </挿入> <!--Oracle バッチ挿入--> <挿入 id="batchInsertUser" データベース ID="oracle"> 始める <foreach コレクション="userList" インデックス="インデックス" 項目="ユーザー" セパレーター=";"> ユーザーに挿入 (名前、年齢、性別) 価値観 (#{ユーザー名},#{ユーザーの年齢},#{ユーザーの性別}) </foreach> ;終わり; </挿入> MySQL は上記の VALUES の後の複数のデータの直接挿入をサポートしているため、MySQL と Oracle の書き込み方法を注意深く観察してください。 foreach タグは、VALUES () の後の内容のみをループする必要があります。Oracle はこの書き込み方法をサポートしていないため、INSERT 文全体をループする必要があります。 <!--一般的なバッチ挿入--> <挿入 id="batchInsertUser" データベース ID="mysql"> ユーザーに挿入 (名前、年齢、性別) <foreach collection="userList" index="index" item="user" Separator="union all"> 選択 (#{ユーザー名},#{ユーザーの年齢},#{ユーザーの性別}) デュアルから </foreach> </挿入> 要約するこれで、MySQL と Oracle のバッチ挿入 SQL の一般的な記述方法についての記事は終了です。MySQL と Oracle のバッチ挿入 SQL に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: ウェブページでグレーまたはブラックモードを実現するための CSS3 フィルターコード
>>: Linux学習におけるmkdirコマンドの詳しい説明
この記事では、ショッピングカートを実装するためのJavaScriptの具体的なコードを参考までに紹介...
序文デフォルトでは、Nginx ログはファイルに書き込まれます。各ドメインのログを区別するために、通...
目次序文質問オンラインソリューション序文この記事の内容は私がこの業界に入ったときのメモを元にしている...
具体的なコードは次のとおりです。 <スタイル> #トーストローダーフルスクリーン{ 高さ...
プロジェクトの要件は、日付と時刻を選択し、現在の時刻以降の時刻のみを選択し、最小レベルを分単位で無効...
マウスをホバーすると画像が折りたたまれる効果を実現する CSS 1. 実施のポイント折り畳みは複数の...
1. Linux で Selenium を使用する1. Chromeをインストールする次のコマンドを...
マインドマップ彼はおそらく次のように見えるでしょう: インターネット上の実装のほとんどは d3.js...
この記事は51CTOブログの著者wjw555の作品を参照しています。スクリプトの内容: vim イン...
1. コマンドの紹介bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システム...
この記事の例では、動的な時計を実装するためのJS + CSSの具体的なコードを参考までに共有していま...
目次1. ヘルプ情報を使用する2. データベースの作成、削除、表示3. データベースに接続する4. ...
1. /etc ディレクトリ内の、文字以外の文字で始まり、その後に文字と任意の長さのその他の文字が続...
time(); 関数関数プロトタイプ: time_t time(time_t *timer)関数の目...
Ubuntu サーバーにパッケージをインストールする場合、sudo apt-get install ...