-449 CREATE OR ALTER STATEMENT FOR FUNCTION OR PROCEDURE routine-name CONTAINS AN INVALID FORMAT OF THE EXTERNAL NAME CLAUSE OR IS MISSING THE EXTERNAL NAME CLAUSE
説明
routine-name の CREATE FUNCTION、CREATE PROCEDURE、ALTER FUNCTION、 または ALTER PROCEDURE ステートメントの EXTERNAL NAME 文節にエラーが検出されました。 あるいは、その文節が必要であるが、指定されていません。
- LANGUAGE JAVA を使用した外部ルーチンの場合は、名前を指定する必要があり、その名前には jar-name:package-id...class-id.method-id(method-signature) というフォームの有効な external-java-routine-name が含まれている必要があります。
- 単一引用符内ではブランクは許可されません。
- method-name は package-ids、class-id、および method-id のリストから成り、254 バイトより長くすることはできません。
- class-id の前にゼロ以上の package-ids を指定できます。
- method-signature はオプションであり、コンマで区切られた Java データ・タイプ のリストです。指定された場合、method-signature は 1024 バイト以下である必要があります。
- 複数のストリングが指定された場合、external-java-routine-name に対して連結したすべてのストリングの合計の長さは 1305 以下である必要があります。
- JAVA 以外の言語を使用する外部ルーチンの場合、外部名は、文字と数字からなる短い ID である必要があります。先頭文字は文字である必要があります (これは MVS™ でのロード・モジュールの命名規則です)。このエラーの考えられる原因は、名前の中にブランクが入っていることです。
文節が省略されている場合は、外部名はデフォルトで function-name になります。しかし、CREATE FUNCTION または CREATE PROCEDURE については、関数名あるいはプロシージャー名が 8 文字を超える場合、EXTERNAL NAME 文節を、外部名として 有効な短い ID を指定するために、明示的に指定する必要があります。
システムの処置
このステートメントを処理することはできません。
ユーザーの処置
LANGUAGE が JAVA である場合は、以下の原因が考えられます。
- EXTERNAL NAME 文節を省略している。
- ブランクを含んでいる。
- 名前の始まりか終わりに '!' がある。
- 無効な external-java-routine-name を指定している。
プログラマーの応答
SQL ステートメントの構文を訂正してください。
SQLSTATE
42878