|
この関数は、現在のデータベースまたは指定されたデータベースの、ストアド プロシージャおよびユーザー定義関数の名前を結果セットとして返します。「CREATE PROCEDURE」 と 「CREATE FUNCTION」 も参照してください。
パラメーター
|
データ型
|
デフォルト値
|
説明
|
---|---|---|---|
database_qualifier
|
VARCHAR
|
現在のデータベース
|
詳細を取得するデータベースの名前。
|
procedure_name
|
VARCHAR
|
(デフォルト値なし)
|
情報を要求するストアド プロシージャの名前
|
メモ
システム ストアド プロシージャは、Pervasive PSQL Control Center に表示されない内部データベース PERVASIVESYSDB に定義されています。
デフォルトで、DEMODATA サンプル データベースにはストアド プロシージャとユーザー定義関数が何も含まれていません。dbo.fSQLProcedures 関数(および dbo.fSQLProcedureColumns)の出力を提供するために、次のようなストアド プロシージャとユーザー定義関数を作成してください。それらはすべて、必要なテーブルおよびパラメーター バインドが与えられれば呼び出すことができます。しかし、この例の目的はそれらの実行を示すことではなく、それらをデータベース オブジェクトとして含めることです。
「CREATE PROCEDURE」 と 「CREATE 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 行が影響を受けました。
|