-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-namepackage-idsclass-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