Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
関数を変更します。
ALTER FUNCTION [ owner.]function-name function-definition
function-definition : CREATE FUNCTION 構文
ALTER FUNCTION [ owner.]function-name SET HIDDEN
ALTER FUNCTION [ owner.]function-name RECOMPILE
新しい関数全体を ALTER FUNCTION 文にインクルードします。
構文 1 ALTER FUNCTION 文の構文は、最初の 1 語を除き、CREATE FUNCTION 文の構文とまったく同じです。
ALTER FUNCTION では、関数の既存のパーミッションは変更されません。ただし、DROP FUNCTION に続けて CREATE FUNCTION を実行した場合は、実行パーミッションが再割り当てされます。
構文 2 SET HIDDEN を使用して、関連する関数定義を難読化し、解読できないようにします。この関数はアンロードして、他のデータベースに再ロードできます。
SET HIDDEN を使用すると、デバッガーを使用したデバッグでも、プロシージャープロファイリングによっても、関数定義は表示されません。
この設定は、元に戻せません。元の関数定義をデータベースの外部に保持することを強くおすすめします。
構文 3 RECOMPILE 構文を使用して、ユーザー定義 SQL 関数を再コンパイルします。関数を再コンパイルすると、カタログに格納された定義が再解析され、構文が検証されます。保持されている関数のソースは、再コンパイルしても変わりません。関数を再コンパイルすると、SET HIDDEN 句で難読化された定義は、難読化された状態が維持され、解読できません。
関数の所有者であるか、DBA 権限が必要です。
オートコミット。
SQL/2008 ベンダー拡張。ALTER FUNCTION は、SQL/2008 標準のオプションの SQL 言語機能 F381 です。ただし、SQL 標準では、PSM 関数定義を再定義するために ALTER FUNCTION を使用することはできません。SQL/2008 では、SET HIDDEN または RECOMPILE はサポートされていません。
この例では、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;