Usage

CREATE [OR REPLACE] VIRTUAL PROCEDURE views.<procedurename>( ... ) [ RETURNS ( ... ) ] [ OWNER <owner_name>] [EXECUTE AS <executor> ] AS BEGIN <procedure code> END
  • viewsスキーマを使用してプロシージャを作成します;
  • キーワードVIRTUALは、手順がソースシステムに依存せず、CData Virtuality Server によって評価されることを示します;
  • CREATE OR REPLACEを使用した場合、既存のプロシージャは置き換えられます。 プロシージャの定義(書式やコメントを含む)が変更されていない場合、既存のプロシージャは置き換えられません;
  • OWNERはプロシージャの所有者を意味します。DEFAULT値:現在のUser;
  • EXECUTE ASプロシージャ実行者を意味します。許可される値: CALLERおよびOWNER。デフォルト値: CALLER.

Syntax Rules

  • すべての仮想プロシージャは、viewsのような仮想スキーマ内にのみ作成する必要があります。作成されると、CData Virtuality Studio のVirtual Schemas セクションに表示されます;
  • システム・スキーマ(SYSSYSADMINUTILSpg_catalog、および分析ストレージ・スキーマ)では仮想プロシージャを作成できません。

詳細はVirtual Procedures and Procedural LanguageおよびVirtual Proceduresを参照してください。

Example

CREATE VIRTUAL PROCEDURE views.dateaxis(IN startdate date,IN enddate date) RETURNS (xdate date) OWNER 'admin' EXECUTE AS OWNER
AS
BEGIN
DECLARE date idate;
idate=startdate;
CREATE LOCAL TEMPORARY TABLE #x(xdate date);
WHILE (idate<=enddate)
BEGIN
INSERT INTO #x(xdate) VALUES (idate);
idate=timestampadd(SQL_TSI_DAY,1,idate);
END
SELECT * from #x;
END;;

Use double semicolon ;; as a statement separator. It is necessary to distinguish statements inside and outside the procedure block.

State

プロシージャが作成されると、そのプロシージャは状態を持ちます:

State

Description

READY

The procedure can be used

WARNING

 The procedure can be used, but the backing data source uses a stored copy of the metadata

FAILED

The procedure failed to load

OWNER and EXECUTE AS are available since v4.1