Skip to Main Content

SQL & PL/SQL

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!

Get consistent response from to_char 'D' using different NLS's

PericlesJul 26 2022

Hello
I'm using to_char(date,'D') in a package procedure to get the day of the week of a given date. If something happens on weekend (to_char(date,'D') is 1 or 7 ) the procedure should do A else B.
I'm facing some issues because the procedure will be called from an APEX 22.1 session affected by user's NLS. If the user's NLS is EN-US to_char('23-JUL-2022','D') returns 7, but if the user NLS is SP-AR then the same function returns 6, affecting the result of the procedure
I've found that DBMS_SESSION.SET_NLS can be used, but I'm quite worried about what would be the impact of that change for the end user.
Wonder if there is another way to find out if a date is Saturday or Sunday no mater NLS format.
Appreciate your comments.

This post has been answered by Frank Kulash on Jul 26 2022
Jump to Answer

Comments

LA County APEX

You can use a JavaScript to accomplish that. Check my application

Workspace: ladevapex

User Name: mydevfellow

Password: Pa$$word1

To test the application, follow the steps below:

  • Click Upload New Image button
  • Click Detail button
  • Enter or select the first row objects.
J.col

Hello.

Thanks for the answer and the application infos. I took a look and I learnt a lot of things !

For my issue, I checked your page 7 (detail button) and I didn't understand how it works. I think what I'm doing is very similar to your page 7, but I'm probably missing something.

Here is a part of my application.

pastedImage_0.png

When the user selects a date or a "New" value I want to update my right part with the selected info

pastedImage_1.png

For the moment, I created a PL/SQL process I duplicated in every concerned field.

As this is only a demo application with 4/5 fields, this is not a problem. But at the end, I'll have more than 30 distinct selection fields, and I cannot duplicate my PL/SQL process 30 times ^^

Can you explain me how you would do that please ?

Best regards.

LA County APEX
Answer

All you have to do is to call a JavaScript function to collect value from each item into your display list. Note, this is only to display to the user what being selected. When saving the record, you need to pass the actual value from each item to your process as a parameter.

The following example is the function on page 7 of my application.

function shwVal()

{

  $x('SELVAL').innerHTML = '';

  if ($x('P7_TXT1').value != '')

        $x('SELVAL').innerHTML = $x('P7_TXT1').value;

  var comm = '';

  if ($x('SELVAL').innerHTML)

       comm = ',';

   if ($x('P7_TXT2').value.length == 4)

        $x('SELVAL').innerHTML = $x('SELVAL').innerHTML + comm + $x('P7_TXT2').value;

    if ($x('SELVAL').innerHTML)

       comm = ',';

    $x('SELVAL').innerHTML = $x('SELVAL').innerHTML + comm + apex.item('P7_SEL').getValue();

    if ($f_SelectValue('P7_CHKBX') != '')

        $x('SELVAL').innerHTML = $x('SELVAL').innerHTML + comm + $f_SelectValue('P7_CHKBX');

    if ($x('SELVAL').innerHTML)

       comm = ',';

    if ($f_SelectValue('P7_RADIO') != '')

        $x('SELVAL').innerHTML = $x('SELVAL').innerHTML + comm + $f_SelectValue('P7_RADIO');

}

Marked as Answer by J.col · Sep 27 2020
J.col

Hello !

I'm not familiar with Javascript and its integration into Apex so I didn't look at the good place.

With the search function, I was able to find your JS function and how you call it into your items.

A big thanks !

1 - 4

Post Details

Added on Jul 26 2022
3 comments
129 views