タイトルに記載されているエラーが発生しています。
36 文字の ID を使用しています。このエラーは、asp.net Web フォームの sqldatasource でのみスローされます。で更新を行う場合は問題ありませんOracle sql developer
。
どうすればこれを修正できますか?
タイトルに記載されているエラーが発生しています。
36 文字の ID を使用しています。このエラーは、asp.net Web フォームの sqldatasource でのみスローされます。で更新を行う場合は問題ありませんOracle sql developer
。
どうすればこれを修正できますか?
Oracle は最大 30 文字の識別子をサポートしていますが、識別子の長さ36
はそれよりも長いため、長さを 30 文字にしてください。
SQL Developerなどの別の環境からDML(UPDATE tableName SET ...)を正常に実行している場合、asp.netコードは、テーブルの名前またはテーブルの列名を誤って指定または構築している必要があります。Oracleは、他のチェックの前にこれらのいずれかを30文字以上として解析する場合、この例外をスローします。
Srinivasが指摘したように、最大長は30であるため、36文字の識別子はSQLDeveloperでは機能しません。SQLDeveloperで「機能している」ステートメントを投稿できますか。
ああ、なるほど。36文字の列名ではなく、実際のデータです。それを片付けてよかった。
「なぜこれがASP.NETSqlDataSourceから発生するのか」については、ASCIIとUnicodeの間の変換に問題があるのではないかと思います。NVARCHAR2はUnicodeですが、Unicodeの世界では何かがうまく機能していないのではないかと思います。Webサーバー、クライアント、データベース、考えられるすべてのものをチェックしてください-どこかに、Unicodeを適切に話さないASCIIクライアントがあり、混乱していることに気付くと思います。 Unicode文字列の長さについて(32のUnicode文字は64バイトを使用します(UTF-16を想定))。
幸運を。
SERVICE_ID NVARCHAR2(36) NOT NULL
マルチバイト・キャラクタ・セットを使用するようにSQL Developerが構成されていますか? ORA-12899: value too large for column
特に、ORA-00972 ではなくスローされると予想されるので、大げさな推測です。