SELECT name FROM TABLE_NAME WHERE id IN(1, 2, 3)みたいな複数行の結果セットが返ってくるクエリを、 複数行を結合した文字列にしつつ、サブクエリとして扱って、 SELECT column1, column2, (SELECT name FROM TABLE_NAME WHERE id IN(1, 2, 3)) AS names FROM ...みたいにスバッと書きたいみたいなことが、たまにあります。 文字列への結合をプログラム側でやらなくて済むと嬉しいケースもあるし。 ただし、これはRDBMSによって、書き方が結構異なります。 なんで、アレっちゃアレなんですが、まとめてみました。 対象RDBMSはPostgreSQL、MySQL、Oracle。(というか他は知らない。。。) 前提 SELECT name FROM TABLE_NAME WHERE
門外不出のOracle現場ワザ 第5章 DBアクセスの空白地帯 コネクションプーリングを極める 日本オラクル株式会社 コンサルティング統括本部テクノロジーコンサルティング本部 小田 圭二(おだ けいじ) 目次 Part1 DB接続のパフォーマンスと管理性を最大化するコネクションプーリングの仕組み コネクションとは? 接続するタイミング コネクションプーリングの構成要素 コネクションプーリングに付随する技術 共有サーバー構成 OCIコネクションプーリング Part2 Java &.NETで使えるコネクションプーリング究極の選択 Javaにおけるコネクションプーリング コネクションプーリングの選択基準 コネクションプーリングの実装の紹介 コネクションプーリングの切り替え .NETのコネクションプーリング おわりに Part1 DB接続のパフォーマンスと管理性を最大化するコネクションプーリン
Oracle には非公開の隠し関数やパラメータが非常に多く存在します。そんな中でもつい最近知った wmsys.wm_concat という関数が非常に強力です。機能としては集約関数に相当するもので、正規化したテーブルを非正規化して出力するような要件にピッタリですが、Oracle 11g のマニュアルにも記載されていないので Undocumented な関数であることを理解して使用する必要があります。(※つまりは Oracle 保守でもサポート外ってわけです。) さて、実際どのようなことができるかをみてみます。例えばポイントサイトのようなサービスにおけるポイント管理テーブルを考えてみます。たとえば、以下のような簡易なテーブル構造であったとします。※このエントリ用の仮想的なテーブルですので実用的ではないです。 名前 NULL? 型 備考 ----------------- -------- --
米オラクルはエンタープライズ向けNoSQLデータベース「Oracle NoSQL Database 11g」の公開を発表。評価版の無償ダウンロードを開始しました。オープンソースライセンスに基づくコミュニティ版も準備中(10月26日現在、ライセンス承認待ち)とのことです。 Oracle NoSQL Databaseは、同社のキーバリューストアであるOracle Berkeley DB Java Editionをベースに、分散処理機能、ロードバランス、管理機能、マルチノードバックアップ機能などを追加したもの。大規模なデータを高速に扱うことができ、高い可用性とスケーラビリティを実現すると説明されています。 分散キーバリューストアで単一障害点を排除 NoSQL Databaseの基本的なアーキテクチャは、プライマリキーのハッシュによって指定されたノードにキー/バリューのペアを書き込む分散キーバリュ
DB アプリを書いていると、どうしても使いたくなるのが UPSERT 機能。 実際には UPSERT という構文はありませんが、意味としてはレコードがあれば UPDATE で更新し、レコードがなければ INSERT で追加をするってことです。 従って、普通に書くなら、SELECT → UPDATE/INSERT と場合分けというロジックでプログラムを書くわけですが、トランザクションで考えるとコレが意外とやっかいなときがあります。そのような場合は SELECT FOR UPDATE とか使って行ロックをかけたりする訳なのですが、これまた予期せぬロック待ちの元になったりする場合があり得るので、あまり人に書かせたくない。 Oracle には UPSERT に相当する構文として MERGE 構文があるので、結構重宝します。ただし Oracle9 以降で実装された機能なのですが、今時 8i 以前を使
Oracle Data Provider for .NET開発者ガイド 11gリリース1(11.1.0.6.20) E06104-01 OracleConnectionクラス OracleConnectionオブジェクトは、Oracleデータベースへの接続を表します。 クラスの継承 System.Object System.MarshalByRefObject System.ComponentModel.Component System.Data.Common.DbConnection (ADO.NET 2.0専用) Oracle.DataAccess.Client.OracleConnection 宣言 // ADO.NET 2.0: C# public sealed class OracleConnection : DbConnection, IDbConnection, IClone
How To資料: ODP.NETを使用したOracleデータベースへの接続 目的 このHow To資料を完了すると、次のことができるようになります。 Oracle Data Provider for .NET(ODP.NET)を使用したOracleデータベースへの接続 ODP.NET接続プーリングを規定する基本パラメータのコントロール 前提条件 読者がMicrosoft Visual Studio.NETについての知識を持ち、また、ODP.NETやデータベースの基本を理解していることを前提とします。 概要 ODP.NETは、Oracle.DataAccesss.dllア センブリに含まれていて、データベースとの相互対話を容易に実現するクラスのコレクションを提供します。 いずれの.NETアプリケーションからでもOracleデータおよび機能へ高速かつ確実にアクセスできるように、ODP.NET
門外不出のOracle現場ワザ 第5章 DBアクセスの空白地帯 コネクションプーリングを極める 日本オラクル株式会社 コンサルティング統括本部テクノロジーコンサルティング本部 小田 圭二(おだ けいじ) 目次 Part1 DB接続のパフォーマンスと管理性を最大化するコネクションプーリングの仕組み コネクションとは? 接続するタイミング コネクションプーリングの構成要素 コネクションプーリングに付随する技術 共有サーバー構成 OCIコネクションプーリング Part2 Java &.NETで使えるコネクションプーリング究極の選択 Javaにおけるコネクションプーリング コネクションプーリングの選択基準 コネクションプーリングの実装の紹介 コネクションプーリングの切り替え .NETのコネクションプーリング おわりに Part2 Java &.NETで使えるコネクションプーリング究極の選択 J
自律型トランザクション (Autonomous Transactions) 自律型トランザクションプラグマ (PRAGMA AUTONOMOUS_TRANSACTION) は、メイントランザクション(以降 MT)とは独立した 自律トランザクション(以降 AT) を宣言するためのものである。 注意:自立型トランザクションという表記は正しくない。 自律型トランザクションのメリット SLECT で呼び出す関数の内部で DML を実行することが可能 通常 SELECT で呼び出す関数に DML が含まれると ORA-14551: 問合せの中でDML操作を実行することはできません。 とエラーが発生するが、この関数を自律型トランザクション宣言すると SELECT 内でテーブルデータを更新することができる。 MT 処理の中にエラー処理のログや監査のログを永続テーブルに書き込むことなどが可能 2つのトラン
PL/SQLは、SQLをプログラムのように書いて実行できる、Oracleの独自言語。 一時的に実行するだけでなく、関数やプロシージャ(といったサブルーチン)の形にして保存して何度でも実行できる。 そうして保存したサブルーチンの事をRDBの世界では(?)ストアドプロシージャと呼ぶ。 「ストアド」とは「stored」の事なので、日本語としては「ストアード」と言うべきだと思うのだが「ストアド」と書かれる(少なくとも切り方は「スト・アド」ではなく「ストア・ド」)。メモリーをメモリと書く人も多いので、その流れか。 (一時的な)実行方法 SQL*Plusから入力して実行できる。 SQL> BEGIN 2 DBMS_OUTPUT.PUT_LINE('test'); 3 END; 4 / test PL/SQLプロシージャが正常に完了しました。 DBMS_OUTPUT.PUT_LINE()は文字列を出力す
PL/SQLとJavaの強力な連携開発手法 JavaからのPL/SQLの呼び出しとシームレス・デバッグ 2004年5月 概要 アプリケーション開発におけるJavaの利用は急速に拡大しています。しかしながら、既に多くのプログラム資産を所有しているユーザーにとって、すべてを一からJavaで作り直すのは無駄なことです。特にデータベース内に蓄えられたPL/SQLプログラムの資産を有効利用したいと考えるのは自然な発想です。このドキュメントでは、JavaからのPL/SQLの呼び出しと効果的なデバッグ方法を紹介します。 JavaからPL/SQLを呼び出すコードの作成 PL/SQLプログラムのデバッグ PL/SQLとJavaのシームレス・デバッグ JavaからPL/SQLを呼び出すコードの作成 Java から PL/SQLプログラムを呼び出すためには、一般に以下のような手順をとります。 JDBC接続の確立
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く