「Functions」ノード

このセクションの内容は次のとおりです。

ファンクションについて

ファンクションとは、データ値を受け入れて返すように設計された、名前の付けられたPL/SQL文のセットです。戻り値はユーザーが入力する値に基づきます。ファンクションには、組込み済のものとユーザーが定義したPL/SQL式があります。「Function」ノードで表されるファンクションは、次のようなユーザー定義の式です:

circle_area(radius)
payroll.tax_rate(empno)
hr.employees.comm_pct(dependents, empno)@remote
DBMS_LOB.getlength(column_name)
my_function(DISTINCT a_column)

値を返さないファンクションを記述する場合はプロシージャを記述することを検討してください。

「Functions」ノードの仕組み

「Function」ノードは「Functions」ノードの子です。子の「Function」ノードにはそれぞれ子のパラメータ・ノードのセットがあります。このノードに対してアクションを実行するには、ノードを右クリックして、メニューから適切なコマンドを選択します。ノードのプロパティを表示するには、ノードを選択するか、ノードのメニューの「Properties」をクリックします(あるいはその両方)。

「Functions」ノードには、Oracleデータベースにあるファンクション・スキーマ・オブジェクトを表す1つ以上の「Function」ノードが含まれています。「Function」ノードには、それぞれパラメータ・ノードのセットおよび戻り値ノードがあります。

この「Functions」ノードに対してアクションを実行するには、ノードを右クリックして、メニューで適切なコマンドを選択します。ノードのプロパティを表示するには、メニューから「Properties」を選択します。

このコレクション・ノードがフィルタされると、ファンネル記号が含まれるようにアイコンが変わります。フィルタの詳細は、「コレクション・ノードのフィルタ」を参照してください。

メニュー・オプション

メニュー・オプション 説明

New PL/SQL Function

ファンクション・デザイナを使用して新規PL/SQLファンクションを作成します。

New .NET Function

Oracle Deployment Wizard for .NETを使用して、ファンクションを.NETアセンブリとしてOracle Databaseにデプロイします。これを表示できるのはSYSDBA権限を持つユーザーのみです。

Query Window

SQLおよびPL/SQL問合せをVisual Studioから実行できるように問合せウィンドウを開きます。

Generate Create Script

ファンクション定義を.sqlファイルに書き込みます。

「Functions」ノードに関連付けられているオブジェクトをデータベース・バックエンドから削除すると、このメニュー・オプションによって次が実行されます:

このオブジェクトがOracle Databaseに存在しなくなり、スクリプトが生成されないことを示すメッセージを表示します。

Generate Create Script to Project

ファンクション定義を.sqlファイルに生成し、開いているOracleデータベース・プロジェクトに.sqlファイルを追加します。

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

開いているOracleデータベース・プロジェクトが複数ある場合、Visual Studioにより、スクリプトを追加するプロジェクトを選択するよう求められます。

この操作は、サーバー・エクスプローラ・ノードをデータベース・プロジェクト・フォルダに直接ドラッグ・アンド・ドロップして実行することもできます。

詳細は、「Oracleスクリプト・ファイルの管理」を参照してください。

ノート: Oracleデータベース・プロジェクト・バージョン2のプロジェクトはサポートされていません。このプロジェクト・タイプにスクリプトを追加するには、Oracleデータベース・プロジェクト・バージョン2のプロジェクト・フォルダの「Import Schema」または「Add Existing Item」メニュー項目を使用するか、スキーマ比較ツールを使用します。

Filters

「Filters」タブを開き、コレクションの下に表示される子ノードを制御します。

Privileges

「Grant/Revoke Privileges」ダイアログ・ボックスを開きます。

Refresh

関連付けられたファンクション・ノードおよびパラメータ・ノードを含む、「Functions」ノード・ツリーを更新します。

Properties

「Properties」ウィンドウを開きます。