エラーメッセージ「SQLSTATEまたはSQLCODE変数宣言はネストされた複合ステートメントにあります」は、通常、複合ステートメント内でSQLSTATEまたはSQLCODE変数を宣言したことを示します（開始...終了）。ほとんどのデータベースでは、これは許可されておらず、変数を最も外側の範囲で宣言する必要があります。

このエラーを解決するには、SQLSTATEまたはSQLCode変数の宣言を最も外側の範囲に移動し、複合ステートメント内にないことを確認する必要があります。

これを説明する例は次のとおりです。

 - 間違っている：複合声明内の宣言
する
始める
    @sqlstate varchar（5）を宣言します。
     - こちらのコード
終わり;

 - 正しい：最も外側の範囲の宣言
@sqlstate varchar（5）を宣言します。
する
     - こちらのコード
終わり;
The error message "An SQLSTATE or SQLCODE variable declaration is in a nested compound statement" usually indicates that you have declared an SQLSTATE or SQLCODE variable within a compound statement (BEGIN ... END). In most databases, this is not allowed and the variable must be declared in the outermost scope.

To resolve this error, you need to move the declaration of the SQLSTATE or SQLCODE variable to the outermost scope and ensure that it is not within any compound statements.

Here's an example to illustrate this:

-- Incorrect: Declaration within a compound statement
DO
BEGIN
    DECLARE @sqlstate VARCHAR(5);
    -- more code here
END;

-- Correct: Declaration in the outermost scope
DECLARE @sqlstate VARCHAR(5);
DO
    -- more code here
END;