Oracleスクリプト・ファイルの管理

Oracleデータベース・プロジェクトで管理されるすべてのスクリプトには、.sqlファイル拡張子と有効なSQLまたはSQL*Plus構文が必要です。

この項の内容は次のとおりです。

Oracle SQLスクリプト互換性要件

Visual Studioにおいてデフォルトで使用されるスクリプト実行エンジンでは、Oracle固有のSQL構文やSQL*Plusディレクティブは適用されません。

Oracle SQLスクリプトを実行するために、Oracle Developer Tools for Visual StudioにはSQL*Plusエンジンが含まれています。

Oracle SQLスクリプトは次の要件を前提としています:

自動コミット・モード

デフォルトでは、SQLスクリプトは自動コミット・モードで実行されます。このモードでは、スクリプトのSQL*Plusコマンドを使用して自動コミットをオンまたはオフに変更できます。

SQL*Plusコマンドのサポート

Oracle Developer Toolsでは、ほとんどのSQL*Plusスクリプト・コマンドがサポートされています。次のコマンドはサポートされていません:

  • HOST

  • EDIT

  • GET

  • SAVE

  • SPOOL

  • START

  • STORE

スクリプト・ファイルの文字セット・エンコーディング

Oracle SQLスクリプト・ファイルは、Oracle NLS_LANG環境変数設定で指定したエンコーディングと同じエンコーディングである必要があります。詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』11gリリース1 (11.1)を参照してください。

スクリプト・ファイル名の特殊文字

SQL*Plusスクリプトのファイル名には、次の特殊文字を含めることはできません:

*, ?, ", <, >, |, /, \

これらの文字を含むファイル名の場合、出力ペインに「Invalid file name」エラー・メッセージが表示され、スクリプトは実行されません。

新規スクリプトの追加

Visual Studioを使用してOracleデータベース・プロジェクトに新規スクリプトを追加できます。

新規スクリプトを追加するには、次のいずれかを行います:

  • Oracleデータベース・プロジェクトのルート・ノードまたは個々のタイプのフォルダ・ノードを右クリックし、「Add New Item」を選択します。

  • ソリューション・エクスプローラでルート・ノードまたはフォルダ・ノードを選択し、次に「Project」メニューおよび「Add New Item」を選択します。

「Add New Item」ダイアログ・ボックスが表示されます。

「Add New Item」ダイアログ・ボックスには、Oracleデータベース・プロジェクト項目の下の左側にカテゴリが、右側にスクリプト・テンプレートがリストされます。カテゴリを選択すると、使用可能なスクリプトのテンプレートのリストが表示されます。主なカテゴリは次のとおりです:

  • General

  • Data

  • Code

  • XML

  • User Defined Types

  • Security

「Add」をクリックすると、SQLエディタで新規作成されたファイルが開きます。

関連項目

「Oracle Database Project」ノードの仕組み

既存スクリプトの追加

Visual Studioを使用して既存スクリプトをOracleデータベース・プロジェクトに追加できます。

既存スクリプトを追加するには、次のいずれかを行います:

  • Oracleデータベース・プロジェクトのルート・ノードまたはフォルダ・ノードを右クリックし、「Add Existing Item」を選択します。

  • ソリューション・エクスプローラでルート・ノードまたはフォルダ・ノードを選択し、次に「Project」メニューおよび「Add Existing Item」を選択します。

「Add Existing Item」ダイアログ・ボックスが表示されます。該当のスクリプト、テキスト、XMLまたはその他のファイルを参照および選択できます。

このコマンドでは、追加されたスクリプトは自動的に開きません。

関連項目

「Oracle Database Project」ノードの仕組み

自動生成されたスクリプトをスキーマ・オブジェクトに追加

様々な方法でスクリプトを自動的に生成し、Oracleデータベース・プロジェクトに追加できます。

この項の内容は次のとおりです。

ドラッグ・アンド・ドロップを使用したスクリプトの生成

Oracleスキーマ・オブジェクトは、サーバー・エクスプローラからOracleデータベース・プロジェクト・フォルダに直接ドラッグ・アンド・ドロップできます。これにより、フォルダ内にOracle SQLスクリプトが生成されます。

1つの操作で複数のスキーマ・オブジェクトを選択してドラッグ・アンド・ドロップできます。サーバー・エクスプローラで複数のオブジェクトを選択すると、マスターSQLスクリプトがOracleデータベース・プロジェクトのスクリプト・フォルダに作成されます。このマスター・スクリプトには、ターゲット・フォルダに生成された個々の子SQLスクリプト(スキーマ・オブジェクトごとに1つ)へのコールが含まれています。マスター・スクリプトは、依存関係を考慮して順序付けされます。

スキーマ・オブジェクトから「Generate Create Script to Project」の直接使用

サーバー・エクスプローラでは、ほとんどのデータベース・スキーマ・オブジェクト・ノードに「Generate Create Script to Project」メニュー項目があります。このメニュー項目を使用するには、ソリューション・エクスプローラ内にOracleデータベース・プロジェクトが存在している必要があります。

「Generate Create Script to Project」メニュー項目を使用して、データベース・スキーマ・オブジェクトのSQLスクリプトを、そのスキーマ・オブジェクト・タイプに対応するフォルダ内のOracleデータベース・プロジェクトに生成できます。フォルダが存在しないか名前が変更されている場合、このスクリプトはプロジェクトのルートに書き込まれます。

複数のスキーマ・オブジェクトを選択してから、「Generate Create Script to Project」メニュー項目をいずれかからコールできます。サーバー・エクスプローラで複数のオブジェクトを選択すると、マスターSQLスクリプトがOracleデータベース・プロジェクトのスクリプト・フォルダに作成されます。このマスター・スクリプトには、スキーマ・オブジェクト・タイプに対応するフォルダに生成された個別の子SQLスクリプト(スキーマ・オブジェクトごとに1つ)へのコールが含まれています。マスター・スクリプトは、依存関係を考慮して順序付けされます。

ソリューションで複数のOracleデータベース・プロジェクトが開いている場合は、スクリプトを追加するプロジェクトを選択するよう求められます。

「Preview SQL」ダイアログ・ボックスを使用したプロジェクトのスクリプト生成

様々なOracleデザイナおよびウィザードから「Preview SQL」ダイアログ・ボックスを起動できます。この「Preview SQL」ダイアログには、スキーマ・オブジェクトに対して加えた変更を有効にするために必要なSQLが含まれています。このダイアログには、デザイナ(表、ビュー、プロシージャ、ファンクション、トリガー、パッケージ、シノニムおよび順序)のOracleデータベース・プロジェクトにSQLスクリプトを生成するためのボタンがあります。

「Preview SQL」ダイアログの「Add to Project」をクリックすると、生成されたスクリプトがOracleスキーマ・タイプのフォルダの新規ファイルに書き込まれます。

フォルダが存在しないか名前が変更されている場合、このスクリプトはプロジェクトのルートに書き込まれます。ソリューションで開いているOracleデータベース・プロジェクトが複数ある場合、スクリプトを追加するプロジェクトを選択するように求められますが、スクリプト名または場所は求められません。指定した名前のファイルがすでに存在する場合、ダイアログ・ボックスが表示され、既存ファイルを上書きするかどうかの確認を求められます。

関連項目

「Preview SQL」ダイアログ