QUESTION(SQ0908086)
オブジェクトの存在を確認する方法がありますか?
ビューやプロシージャ、ファンクションなどを作成/変更する際に、CREATEとALTERのどちらを使えばいいか判断したいのですが、既に対象のオブジェクトが存在するかどうか確認できる方法はありますか。
ANSWER
既存のオブジェクトの存在確認は、システム・ビューに問い合わせを行うことで可能ですが、このような場合には、sa_make_object
システム・プロシージャを使用することにより、処理を簡単にすることができます。
sa_make_object
システム・プロシージャは指定されたオブジェクトが存在していれば何もしませんが、指定されたオブジェクトが存在していない場合、指定されたオブジェクトのスケルトン(空のオブジェクト)を作成します。
この為、sa_make_object
システム・プロシージャとALTER文をセットで使用いたしますと、オブジェクトの存在確認は不要となります。
例) 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
システム・プロシージャの詳細につきましては、以下のオンライン・マニュアルをご参照ください。
http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/ja/html/dbrfja9/00000650.htm
|