Oracle Apex 4.2.5、Oracle 12c データベースの問題。私が取り組んでいる Oracle Apex アプリケーションは、2 つの解析スキーマを持つ単一のワークスペースです。メインのバック オフィス アプリケーションは、1 つのスキーマによって解析される多数のワークスペースで構成されています。
エラーのあるアプリケーションは、3 つのアプリケーション (12000、12001、12006) で構成される 2 番目のスキーマによって解析され、インターネットに面したページに使用されます。1 つのアプリケーションには、セキュリティ、ログイン、およびダッシュボード ページを処理する共通のページが含まれ、もう 1 つのアプリケーションには製品固有のページが含まれています。
ダッシュボード ページから製品固有のページに移動すると、最初の試行で一般的なログイン ページが表示されます。ログイン ページの URL は 、移動先のページの にFSP_AFTER_LOGIN_URL設定されてf?p=APP:PAGEいます。ログインに成功すると、ora-1422 exact fetch returns more than requested number of rowsエラーは . スイッチをオンにしてデバッグを確認すると、v 関数によってエラーがスローされていることがわかります。
見ると、wwv_flow_data3行が表示されますFSP_AFTER_LOGIN_URL
"FLOW_INSTANCE" "ITEM_ID" "ITEM_FILTER" "SESSION_STATE_STATUS" "FLOW_ID"
11304209855061 -162893176 "N" "I" "FSP_AFTER_LOGIN_URL" "N"
11304209855061 -162893176 "N" "I" "FSP_AFTER_LOGIN_URL" "N"
11304209855061 1456968448934338870 "N" "I" 12000 "FSP_AFTER_LOGIN_URL" "N"
FSP_AFTER_LOGIN_URL各アプリ内のアプリ項目です。すべてのスコープが APP に設定されています。セッション状態の保護が設定されていましたが、オフに切り替えると断続的な結果が生じます。
FSP_AFTER_LOGIN_URL は、Apex によって内部的に使用されるアプリケーション項目です。Apex は、この項目を各 apex アプリケーションに自動的に追加します。
FSP_AFTER_LOGIN_URL の値をターゲット ページに設定すると、開発者は、ログイン ページによって認証されたユーザーをリダイレクトするページを定義できます。https://community.oracle.com/message/10271816?#38;#10269816を参照してください
v は、ページが現在存在するセッションのアイテムの値を返す Oracle Apex 提供の関数です。Oracle コードの奥深くに埋め込まれているのは、SELECT INTO ステートメントです。
SELECT D.ITEM_VALUE_CLOB,
D.ITEM_VALUE_VC2
INTO L_VALUE_CLOB,
L_VALUE_VC2
FROM WWV_FLOW_DATA D,
WWV_FLOW_SESSIONS$ S
WHERE D.FLOW_INSTANCE = S.ID
AND D.FLOW_INSTANCE = NVL(P_SESSION_ID,WWV_FLOW_SECURITY.G_INSTANCE)
AND D.ITEM_ID = C_ITEM_ID -- GET_GLOBAL_ITEM_ID(P_ITEM_NAME)
AND D.ITEM_NAME = P_ITEM_NAME -- FSP_AFTER_LOGIN_URL
AND S.SECURITY_GROUP_ID = WWV_FLOW_SECURITY.G_SECURITY_GROUP_ID;
上記のデータが WWV_FLOW_DATA に存在する場合、クエリは FLOW_ID を考慮しないため、複数の行を返します。
これはオラクルの内部であるため、私にできることはあまりありません。ソフトウェアを使用している他の顧客には問題はありません。この特定の顧客にこの問題を引き起こしている Apex 設定はありますか?
item_id=-162893176 と flow_id=null の 2 行を作成できる設定は何ですか? それらの目的は何ですか?この問題を回避するにはどうすればよいですか? ソフトウェアを使用している他の顧客には問題はありません。この特定の顧客にこの問題を引き起こしている Apex 設定はありますか?