1

私はこの特定の問題に何時間も苦労しています。うまくいけば、誰かがこれについて私を助けてくれます。

上記の質問のように、テーブルから構築された表形式のフォームがあり、主キー ('ID') が「Identity Always」として設定されています。データに変更を加えて [保存] をクリックすると、Apex に次のエラーが表示されるため、これが表形式の問題になりました。

ROWID などのいくつかの回避策を試しましたが、表形式のフォームを他のテーブルのフィールドと結合して追加情報を表示する必要があるため、この解決策は機能しませんでした。したがって、ROWID は保持されず、主キーとして使用できませんでした。

また、次のApex ドキュメントも読みました。

表で IDENTITY 句を使用すると、Application Expressアプリケーションに影響を与える可能性があります。ALWAYS パラメータが指定された IDENTITY 列が INSERT または UPDATE ステートメントに含まれている場合、データベースによってエラーが発生します。Application Express Builder が拡張され、テーブルの作成ウィザード内で ID 句を指定できるようになりました。フォームの作成ウィザードは、ALWAYS パラメータを使用して ID 列の「表示専用」アイテムを生成します。

わかりません。Apex は確かに余分な列 ('ID_Display') を生成しましたが、表形式のフォームが同じエラー (上記の ORA-32796) をスローするという事実は変わりません。この「表示のみ」の項目は、「生成された常に ID 列を更新できない」からどのように私を救うことができますか?

補足として、私はサービスとしてのApexであるapex.oraclecorp.comで開発しています。ここでは、ファイルにアクセスしたり、テーブルにSQLを変更したりできません。以前にこの問題に遭遇し、解決策を見つけた場合はお知らせください - 事前に感謝します!

PS Apex のバージョンは 5.0.4 です。

編集:

申し訳ありませんが、Apex で SQL 操作を実行するための SQL コマンド UI があることに気付きました。テーブルの ID を ALWAYS から DEFAULT に変更する方法を知っている人はいますか?

4

4 に答える 4

0

これをかなり試してみた結果、Identity 句を使用して連続した数値の主キーを生成する場合
BY DEFAULT ON NULL AS IDENTITY
、Apex は自動行処理の実行時に ID 項目に null 値を挿入しようとするため、これを使用するしかないことがわかりました。この状況では、他の 2 つのオプションはいずれも Apex で正しく機能しません。
その他のオプションは次のとおり
です。 1. Apex で問題が発生しないシーケンスとトリガーを作成します
。 2. 主キーに GUID を使用します。

于 2020-04-20T20:35:40.203 に答える