SQL Engine Reference (v11)

dbo.fSQLProcedures

この関数は、現在のデータベースまたは指定されたデータベースの、ストアド プロシージャおよびユーザー定義関数の名前を結果セットとして返します。CREATE PROCEDURECREATE FUNCTION も参照してください。

構文

dbo.fSQLProcedures (<'database_qualifier' | null>, 
<'procedure_name' | null>) 

引数

表 116 dbo.fSQLProcedures の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR
現在のデータベース
詳細を取得するデータベースの名前。
procedure_name
VARCHAR
(デフォルト値なし)
情報を要求するストアド プロシージャの名前


メモ

システム ストアド プロシージャは、Pervasive PSQL Control Center に表示されない内部データベース PERVASIVESYSDB に定義されています。


返される結果セット

表 117 dbo.fSQLProcedures で返される結果セット
列名
データ型
説明
PROCEDURE_QUALIFIER
VARCHAR
プロシージャが作成されたデータベースの名前。データベースに適用されない場合は NULL。
PROCEDURE_OWNER
VARCHAR
プロシージャ スキーマ識別子。データベースに適用されない場合は NULL。
PROCEDURE_NAME
NULL でない VARCHAR
プロシージャ識別子
NUM_INPUT_PARAMS
なし
今後の使用に備えて予約されています。アプリケーションには使用しないでください。
NUM_OUTPUT_PARAMS
なし
今後の使用に備えて予約されています。アプリケーションには使用しないでください。
NUM_RESULT_SETS
なし
今後の使用に備えて予約されています。アプリケーションには使用しないでください。
REMARKS
VARCHAR
プロシージャの解説。
PROCEDURE_TYPE
SMALLINT
プロシージャの種類を定義します。
  • 0 = SQL_PT_UNKNOWN - プロシージャが値を返すかどうかを判断できません。
  • 1 = SQL_PT_PROCEDURE - 返されるオブジェクトはプロシージャで、戻り値はありません。
  • 2 = SQL_PT_FUNCTION - 返されるオブジェクトは関数で、戻り値があります。

デフォルトで、DEMODATA サンプル データベースにはストアド プロシージャとユーザー定義関数が何も含まれていません。dbo.fSQLProcedures 関数(および dbo.fSQLProcedureColumns)の出力を提供するために、次のようなストアド プロシージャとユーザー定義関数を作成してください。それらはすべて、必要なテーブルおよびパラメーター バインドが与えられれば呼び出すことができます。しかし、この例の目的はそれらの実行を示すことではなく、それらをデータベース オブジェクトとして含めることです。

CREATE PROCEDURECREATE FUNCTION も参照してください。

CREATE PROCEDURE curs1 (IN :Arg1 CHAR(4), IN :Arg2 
INTEGER) AS BEGIN 
  DECLARE :alpha char(10) DEFAULT 'BA'; 
  DECLARE :beta INTEGER DEFAULT 100; 
  DECLARE degdel CURSOR FOR 
  SELECT degree, cost_per_credit FROM tuition WHERE 
Degree = :Arg1 AND cost_per_credit = :arg2 
  FOR UPDATE; 
  OPEN degdel; 
  FETCH NEXT FROM degdel INTO :alpha,:beta 
  DELETE WHERE CURRENT OF degdel; 
  CLOSE degdel; 
END 
 
CREATE PROCEDURE EnrollStudent2 (IN :Stud_id INTEGER, IN 
:Class_Id INTEGER); 
BEGIN 
 INSERT INTO Enrolls VALUES (:Stud_id, :Class_Id, 0.0); 
END 
 
CREATE PROCEDURE AInsert 
 (IN :AGUID BINARY(16),  
  IN :APeriod INT,  
  IN :BBal UTINYINT,  
  IN :BDr DECIMAL(23,9),  
  IN :BCr DECIMAL(23,9),  
  IN :BNet DECIMAL(23,9),  
  IN :HTrx UTINYINT,  
  IN :PDr DECIMAL(23,9),  
  IN :PCr DECIMAL(23,9),  
  IN :PNet DECIMAL(23,9)) 
AS BEGIN 
  INSERT INTO "ASum" ("AID", "APeriod", "IBal", "BDr", 
"BCr", "BNet", "HTrx", "PDr", "PCr", "PNet") VALUES 
(:AGUID,:APeriod,:BBal,:BDr,:BCr,:BNet,:HTrx, 
:PDr,:PCr,:PNet); 
END 
 
CREATE PROCEDURE AR (OUT :BIID SMALLINT, IN :BName 
CHAR(30))  
AS BEGIN 
  SELECT MAX(BID) + 1 INTO :BIID FROM Br; 
  INSERT INTO Br (BID, FName) VALUES (:BIID, :BName); 
END 
 
CREATE FUNCTION CalInterest (IN :principle FLOAT, 
IN :period REAL, IN :rate DOUBLE) 
RETURNS DOUBLE 
AS BEGIN 
  DECLARE :interest DOUBLE; 
  SET :interest = ((:principle * :period * :rate) / 100); 
  RETURN (:interest); 
END; 
 
SELECT * FROM dbo.fSQLProcedures ('Demodata', null) 
 

結果セット(スペースを考慮して短縮されています):

PROCEDURE_QUALIFIER  PROCEDURE_NAME     PROCEDURE_TYPE 
===================  =================  ============== 
Demodata             curs1                           1 
Demodata             Enrollstudent2                  1 
Demodata             AInsert                         1 
Demodata             AR                              1 
Demodata             CalInterest                     2 
 
5 行が影響を受けました。 

dbo.fSQLPrimaryKeys

dbo.fSQLProcedureColumns