pl/sqlエラー:Identifier is toolong


pl/sqlを使用している間に、Identifier is toolongというエラーが発生しました.字面の意味は識別子が長すぎて、資料も調べたことがありますが、基本的には識別子は30を超えてはいけません.
解決方法1:
Cause: The name of a schema object exceeds 30 characters. Schema objects are
tables, clusters, views, indexes, synonyms, tablespaces, and usernames.
Action: Shorten the name to 30 characters or less.

これは公式の言い方で、大体あなたがつけた名前(識別子)は30文字を超えてはいけません.表、ビュー、インデックス、クラスタ、同義語、表空間、ユーザー名が含まれています.
解決策2:
最初の方法で発生したエラーならまだしも、私のエラーは識別子が30文字を超えることではありません.次は私が実行したときに遭遇したエラーsqlです.
SELECT T.NATI_TASK_ID   ,
       D.AREA_NAME     ,
       T.MANAGE_TYPE   ,
       SP.DATA_END_DATE     ,
       T.CRE_USER_ROLE_ID   ID
       .......--           
  FROM CS_NATI_TASKL T

私のこのsqlには30文字以上の識別子はありませんが、Identifier is toolongというエラーも報告されています.
変に見えますが、私の名前は30文字を超えていません.どうしてこの間違いが発生しましたか?
よく考えてみると、実はこの間違いもおかしくありません.文字セットの不一致によるものだと思います.
この原因が起こったかどうかにかかわらず、まずやってみましょう.環境変数には、次の項目を追加します.
   :NLS_LANG
   :SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(     :AMERICAN_AMERICA.UTF8)

pl/sqlを再起動してOK!できました.実行できます.
解決策3:
この方法は方法2の解決構想と同じであるが,経路が異なるだけで,この方法は直接レジストリによって修正される.
実行:regedit--HKEY_LOCAL_MACHINE -- SOFTWARE -- ORACLE -- KEY_OraClient11g_ホーム1とKEY_OraDb11g_home1
NLS_が見つかりましたLANG変更先:SIMPLAIIED CHINESE_CHINA.ZHS 16 GBKでいいです.