エラーの一般的な原因「sqlstateまたはsqlcode変数宣言はネストされた複合声明にあります」は次のとおりです。

SQLSTATEまたはSQLCODE変数の不適切な使用：SQLSTATEまたはSQLCode変数がネストされたコードブロック内で宣言されている場合、エラーが発生します。

SQLSTATEおよびSQLCODEの目的の誤解：一部の開発者は、SQLSTATEとSQLCodeが通常の変数にすぎないと誤って信じる場合があります。

コーディングエラーのカットと貼り付け：開発者が、その目的を理解せずにプログラムのある部分から別の部分にコードをコピーした場合、コードに誤ってエラーを導入する場合があります。

エラーを修正するには、SQLSTATEおよびSQLCODE変数が、ネストされたブロックの外側の最高レベルのコードで宣言されるようにする必要があります。これにより、プログラム全体でSQLオペレーションの成功または失敗を正確に追跡できます。他の目的のためにネストされたブロック内で変数が使用されている場合、ネストされたブロックから宣言を削除するか、SQLSTATEまたはSQLCode変数に依存しない代替ソリューションを見つける必要があります。
Common causes of the error "AN SQLSTATE OR SQLCODE VARIABLE DECLARATION IS IN A NESTED COMPOUND STATEMENT" include:

Improper use of SQLSTATE or SQLCODE variables: If the SQLSTATE or SQLCODE variables are declared within a nested block of code, the error will occur.

Misunderstanding of the purpose of SQLSTATE and SQLCODE: Some developers may mistakenly believe that SQLSTATE and SQLCODE are just normal variables, when in fact they are used specifically to track the success or failure of SQL operations.

Cut and paste coding errors: If a developer has copied code from one part of the program to another without understanding its purpose, they may accidentally introduce the error into the code.

To fix the error, you should ensure that the SQLSTATE and SQLCODE variables are declared at the highest level of the code, outside of any nested blocks. This will allow them to accurately track the success or failure of SQL operations throughout the entire program. If the variables are being used within a nested block for some other purpose, you should either remove the declaration from the nested block, or find an alternative solution that does not rely on SQLSTATE or SQLCODE variables.