---
title: "データベースツールDatabaseSpyにおける、パラメータ付きSQLクエリ：データベースSpyは、SQLテンプレートをサポートしています"
date: 2017-11-16
categories:
  - development
  - tools
tags:
  - database-tool
  - databasespy
  - sql-query
description: Altova社のデータベース管理ツールDatabaseSpyは、パラメータ付きの複雑なSQLクエリの開発、実行、および改善のための強力な機能を提供します。
---
Status: #blog

Tags:  #database-tool #databasespy #sql-query

Categories: [development](/blog/ja/category/development.md) | [database + sql](/blog/ja/category/database-sql.md)
# データベースツールDatabaseSpyにおける、パラメータ付きSQLクエリ：データベースSpyは、SQLテンプレートをサポートしています

パラメータを含むSQLクエリ（SQLテンプレートとも呼ばれます）は、反復的なデータレポートの要件に対して、柔軟かつ効率的な解決策です。例えば、ユーザーが複数の値セットを使用して、複雑な結合クエリを簡単に実行できます。Altova社の多種データベースに対応したクエリ、設計、編集ツールであるDatabaseSpyは、パラメータを含む複雑なSQLクエリ（SQLテンプレート）の開発、実行、および改善のための強力なサポート機能を備えています。

DatabaseSpyでパラメータ付きのSQLクエリのプロトタイプを作成することで、他のプロジェクトで必要となるクエリの開発をさらに加速させることができます。例えば、MapForceでのデータベースマッピングや、MobileTogetherによるクロスプラットフォームモバイルアプリ向けのデータベースデータソースの開発などが挙げられます。

![ビッグデータサポート](/blog/images/big-data-v2017.png)

<!--more-->

このDatabaseSpyの[SQLエディタ](https://www.altova.com/ja/databasespy/sql-editor)と結果表示ウィンドウには、特定の顧客による特定の商品のすべての注文を表示するクエリが示されています

[![パラメータを使用せずに、複数のテーブルからデータを結合するSQLクエリ](/blog/images/SQL-query-without-parameters.png)](SQL-query-without-parameters.png)

このクエリは、製品名「sprockets」と顧客番号「525」をパラメータに置き換えることで、より詳細な検索が可能になります。以下に示すSQLエディタの画面では、クエリの6行目と7行目で、`:pname`と`:custnum`というパラメータが、それぞれ製品名と顧客番号に置き換えられています。

[![パラメータ付きのSQLクエリは、柔軟性と効率性に優れています](/blog/images/SQL-query-with-parameters.png)](SQL-query-with-parameters.png)

SQLエディタのウィンドウ左上にある黄色の「実行」ボタンからパラメータ付きのクエリを実行すると、DatabaseSpyは実行に必要な値をユーザーが入力できるダイアログを開き、その結果がウィンドウの右下に表示されます。

[![SQLクエリのパラメータに値を設定する](/blog/images/SQL-query-result.png)](SQL-query-result.png)

DatabaseSpyで使用できるSQLテンプレートは、特別なプロジェクトフォルダに保存され、動的に実行することができます。上記の直接実行の例は、ユーザーがすでに必要なパラメータの値を把握している場合に適しています。しかし、多くの場合、ユーザーは未知のデータを調査するために、テスト結果を生成するクエリを作成する必要があります。テストクエリが実行された後、ユーザーは結果テーブルから値を抽出し、プロジェクトのテンプレートフォルダに保存されているSQLテンプレートのパラメータとして使用することができます。

新しいSQLエディタのウィンドウが開き、選択された値がパラメータに設定された、テンプレートに基づいて自動生成されたクエリが表示されます。その後、生成されたクエリが実行され、結果テーブルが表示されます。

[![例を用いて値を設定し、パラメータ付きのSQLクエリを実行します](/blog/images/SQL-parameters-from-result.png)](SQL-parameters-from-result.png)

**パラメータ付きSQLクエリを他のプロジェクトに適用する**

DatabaseSpyでパラメータ付きのSQLクエリを作成すると、そのクエリは簡単に別のプロジェクトに適用できます。例えば、Altovaが提供するクロスプラットフォーム開発ツールであるMobileTogetherで開発されたモバイルアプリなどです [迅速なモバイルアプリケーション開発](https://www.altova.com/ja/mobiletogether) (RMAD)。

例えば、私たちが提示するクエリは、複雑な販売レポートアプリケーションの一部に過ぎないかもしれません。モバイル開発者は、MobileTogether DesignerのウィンドウにあるSQLステートメントエディタに、このクエリをそのまま貼り付けて、ここで示されているようにパラメータの値を設定することができます。

[![パラメータ付きのSQLクエリは、他の多くのプロジェクトでも利用できます](/blog/images/MobileTogether-SQL-Query.png)](MobileTogether-SQL-Query.png)

The MobileTogether Designerに搭載されているドラッグ＆ドロップ式のページレイアウトツールを使用することで、開発者は、アプリケーションの実行時にSQLクエリのパラメータ値を設定するために、ユーザーが顧客番号を入力できる入力フィールドや、製品名を選択できるコンボボックスを作成できます。

モバイルアプリに組み込まれた検索クエリの例を、Androidデバイスで表示すると、以下のようになります

[![Androidモバイルアプリで、パラメータ付きのSQLクエリを実行する機能](/blog/images/SQL-result-in-mobile-app.png)](SQL-result-in-mobile-app.png)

MapForceのデータマッピング、変換、およびETLツールには、上記に示されているDatabaseSpyのダイアログに似たSQLエディタのダイアログが含まれています。MapForceで使用するパラメータは、このダイアログを通じて設定できます [データマッピング](https://www.altova.com/ja/mapforce) これは、実行時に供給されることも、マッピング処理内で内部的に生成されることもあります。

ここに説明されている、パラメータ付きSQLクエリを作成するためのDatabaseSpyのすべての機能—そしてそれ以上の機能—は、以下に記載されているデータベースでサポートされています。DatabaseSpyでは、さらに、ユーザーは異なる種類の複数のデータベースへの接続を同時に開いたり、それらのデータベース間の構造や内容を比較したりすることも可能です。

**対応データベース：**

- 火鳥
- IBM DB2 for iSeries®
- IBM DB2®
- Informix®
- Microsoft Access™ (マイクロソフト アクセス)
- Microsoft® Azure SQLデータベース
- Microsoft® SQL Server® (マイクロソフト SQL サーバー)
- MySQL®
- オラクル社（Oracle Corporation）
- PostgreSQL (ポストグレス)
- Progress OpenEdge
- SQLite
- Sybase®

(各データベースでサポートされているバージョンの一覧については、[こちらをクリックして詳細をご確認ください](https://www.altova.com/ja/databasespy) また、[DatabaseSpy、MobileTogether、またはその他のAltova製品を30日間無料で試用することができます](https://www.altova.com/ja/download)
