Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » システム・オブジェクト » システム・プロシージャ » システム・プロシージャのアルファベット順リスト

 

sa_make_object システム・プロシージャ

ALTER 文を実行する前に、オブジェクトのスケルトン・インスタンスが存在することを確認します。

構文
sa_make_object( 
  objtype,
  objname
  [, owner
  [, tabname ]  ] 
)
objtype:
'procedure' 
| 'function' 
| 'view' 
| 'trigger' 
| 'service'
| 'event'
引数
  • objtype   作成されるオブジェクトのタイプを指定する CHAR(30) パラメータ。objtype が 'trigger' の場合、この引数はトリガが作成されるテーブルの所有者を示します。

  • objname   作成されるオブジェクトの名前を指定する この CHAR(128) パラメータ。

  • owner   作成されるオブジェクトの所有者を指定する任意の CHAR(128) パラメータ。デフォルト値は CURRENT USER です。

  • tabname   この CHAR(128) パラメータは、objtype が 'trigger' である場合にのみ必要です。トリガを作成するテーブルの名前を指定するときに使用します。

備考

このプロシージャは、データベース・スキーマの作成または変更のために繰り返し実行されるスクリプトやコマンド・ファイルで使用すると便利です。このようなスクリプトでは、最初に CREATE 文を実行しますが、その後は ALTER 文を実行することが共通の問題です。このプロシージャを使用すると、オブジェクトが存在するかどうかを確認するためにシステム・ビューにクエリを実行する必要がなくなります。

使用するには、このプロシージャの後にオブジェクト定義全体を含む ALTER 文を実行します。

パーミッション

データベース・オブジェクトの作成または変更には、RESOURCE 権限が必要です。

関連する動作

オートコミット

参照

次の文は、スケルトン・プロシージャ定義が作成されていることを確認し、プロシージャを定義し、プロシージャに対するパーミッションを付与します。これらの命令が記述されたコマンド・ファイルは、データベースに対して繰り返し実行でき、エラーは起こりません。

CALL sa_make_object( 'procedure','myproc' );
ALTER PROCEDURE myproc( in p1 INT, in p2 CHAR(30) )
BEGIN
    // ...
END;
GRANT EXECUTE ON myproc TO public;

次の例は、sa_make_object システム・プロシージャを使用して、スケルトン Web サービスを追加します。

CALL sa_make_object( 'service','my_web_service' );