Some changes in APEX 4.1 are that minor that you wouldn't even notice them until you fall over it.
Something I found recently was the code generated when choosing to source your primary key from a sequence when building a form.
Previously, the code was a little ugly:
declare
  function get_pk return varchar2
  is
  begin
    for c1 in (select EMP_SEQ.nextval next_val
               from dual)
    loop
        return c1.next_val;
    end loop;
  end;
begin
  :P6_EMPNO := get_pk;
end;
Now it's somewhat simpler:begin
    if :P6_EMPNO is null then
        select "EMP_SEQ".nextval
          into :P6_EMPNO
          from dual;
    end if;
end;
What they haven't done, however, is clean up the custom function example - and this is a little more noticable.I noted this in EA for 4.0 - I think they said they've logged the change, but it still hasn't come along. While it's not really promoting this sort of code, it doesn't really have a place anywhere except perhaps an article talking about how bad it is for concurrent user environments.
Perhaps sequence usage will change with 12c?
Idle musings... Scott
 

How does select "EMP_SEQ".nextval work with the double quotes? I get a ORA-02289: sequence does not exist
ReplyDeleteHi
ReplyDeleteA quick google for oracle double quotes uncovered this relevant response.
Essentially, double quotes around identifiers will be case-sensitive.
select "emp_seq".nextval from dual;
will not work unless you created the sequence with
create sequence "emp_seq";
In general, best to avoid using double quotes unless absolutely necessary.