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 リファレンス » SQL の使用 » SQL 文 » SQL 文 (A ~ D)

 

ALTER FUNCTION 文

この文を使用して、関数を修正します。新しい関数全体を ALTER FUNCTION 文にインクルードします。

構文 1
ALTER FUNCTION [ owner.]function-name function-definition
function-definition : CREATE FUNCTION 構文
構文 2
ALTER FUNCTION [ owner.]function-name 
SET HIDDEN
構文 3
ALTER FUNCTION [ owner.]function-name
RECOMPILE
備考

構文 1   ALTER FUNCTION 文の構文は、最初の 1 語を除き、CREATE FUNCTION 文の構文とまったく同じです。CREATE FUNCTION 文のどちらのバージョンも変更できます。

関数に対する既存のパーミッションはそのまま維持されます。このため、パーミッションの再割り当ては必要ありません。DROP FUNCTION と CREATE FUNCTION を実行した場合は、EXECUTE パーミッションを再び割り当ててください。

構文 2   SET HIDDEN を使用して、関連する関数定義を難読化し、解読できないようにします。この関数はアンロードして、他のデータベースに再ロードできます。

注意

この設定は、元に戻せません。元のソースが再び必要な場合は、データベース外で保存してください。

SET HIDDEN を使用すると、デバッガを使用したデバッグでも、プロシージャ・プロファイリングによっても、関数定義は表示されません。

構文 3   RECOMPILE 構文を使用して、ユーザ定義 SQL 関数を再コンパイルします。関数を再コンパイルすると、カタログに格納された定義が再解析され、構文が検証されます。保持されている関数のソースは、再コンパイルしても変わりません。関数を再コンパイルすると、SET HIDDEN 句で難読化された定義は、難読化された状態が維持され、解読できません。

パーミッション

関数の所有者であるか、DBA 権限が必要です。

関連する動作

オートコミット。

参照
標準と互換性
  • SQL/2003   ベンダ拡張。

この例では、MyFunction が作成され、変更されます。SET HIDDEN 句は、関数を難読化し、解読できないようにします。

CREATE FUNCTION MyFunction(
   firstname CHAR(30),
   lastname CHAR(30) )
RETURNS CHAR(61)
BEGIN
   DECLARE name CHAR(61);
   SET name = firstname || ' ' || lastname;
   RETURN (name);
ALTER FUNCTION MyFunction SET HIDDEN;
END;