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 セクションに表示されます; - システム・スキーマ(
SYS
、SYSADMIN
、UTILS
、pg_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 |
---|---|
| The procedure can be used |
| The procedure can be used, but the backing data source uses a stored copy of the metadata |
| The procedure failed to load |
OWNER
and EXECUTE AS
are available since v4.1