Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Using APEX_UTIL.SET_SESSION_STATE to put an item value in Session State?

Howard (... in Training)Apr 30 2013 — edited May 1 2013
Objective: Refresh a region, but not the entire page, where the region has a query based on the value of a page item the user has selected. I (think) I (would) have the region refresh working fine but the page item the query uses is not in Session State!

Current Question: I have a procedure (APEX_UTIL.SET_SESSION_STATE) to place a value the user enters into Session State but how do I get that value in the first place?

What I have in the region:
:P23_SELECT_RUN_DT (date picker)
Rows retrieved based on this date picker. And initially, the query retrieves all rows because :P23_SELECT_RUN_DT (date picker) is null.

I'm trying to follow {message:id=9781139},
I have added a DA (event: change) with the following PL/SQL:
BEGIN
    APEX_UTIL.SET_SESSION_STATE('P23_SELECT_RUN_DT','???');
END;
But how do I specify the value to be used is from the date picker? I can’t use :P23_SELECT_RUN_DT; it's null.

I've added this :P23_SELECT_RUN_DT item to an example I'm already working:
WS: APEX_EXAMPLES_01
USER: demo
PW: demo
Application: 991203 - BPR_991203 Page 23 (Tab: Master 3)
Click the edit pencil after "ProgramName 1" to populate all three regions. The date picker is in the third region.

Is this the approach to use? Can someone suggest a more straight-forward way to accomplish this?

Thanks in advance,
Howard
This post has been answered by fac586 on Apr 30 2013
Jump to Answer

Comments

Mike Kutz

It looks like table TEST1 is being used as a temp table.
In Forms, this should probably have been a GTT.
GTTs don't work in APEX dye to Connection Pooling. You'd use a Collection instead.
But, I'm just guessing about the purpose of TEST1.
(PS - you should probably have just done an INSERT... SELECT instead of parsing a cursor in a loop)

SANPAT

Dear Mike Kutz
I want to delete all the old records from test1. then i want to update the table with the latest Query data from test table. can you suggest how to insert the records using the procedure in Oracle Apex .
Delete all Data from A Table
Query on Table B and get the data
Insert the Query data into A Table.
Sanjay

Mike Kutz
Answer

APEX is stateless. It automatically calls COMMIT as needed (or ROLLBACK ).
I'd keep it simple, Sanjay (K.I.S.S.)

BEGIN
  DELETE FROM TEST1;

  INSERT INTO TEST1 (empno,name)
    SELECT empno, name FROM EMPLOYEE;
END;
Marked as Answer by SANPAT · Oct 17 2021
SANPAT

Dear Mike Kutz
Thanks , your given Query is perfectly runing on Sql Command, but the same Query when i update in the Form at server side condition , it's not working . it truncate the data but not updating with fresh data from the called table.
image.png
image.pngKindly sugget .
Sanjay

AndyH

As you are running this from a Dynamic Action it will be running in a different database session to that of your page. If your page hasn't committed it's data, the session in your DA will not see that data.
Is there a particular reason you are doing this work through a DA and not through a process?

SANPAT

Dear AndyH
I am new to Oracle Apex and Learning , Can you please give me some tips , how to take such query from Process.
Its getting executed properly , but i don't know how to display the message once the Procedure Query will update the table . Can you please suggest.
Sanjay

1 - 6
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on May 29 2013
Added on Apr 30 2013
8 comments
2,426 views