I'm unsure of where to post this. So, I posted it here.
Something like this might have been posted a few years ago. It has been fixed but only for xs$session
Namespace
For all other Namespaces, only the upper()
value is recognized.
note: attribute is case sensitive. But, since the case that it was created with is the case that is recognized, that isn't a problem...in some situations, it might even be the desired outcome.
RUN AS ADMIN (tested on 23.5 FREE)
set serveroutput on;
REM Setup
begin
sys.xs_namespace.create_template(
'NamespaceTest',
xs$ns_attribute_list( xs$ns_attribute( 'some_value' ) )
);
sys.xs_principal.create_user(name => 'ras_user');
end;
/
REM run test
DECLARE
ras_session raw(256);
begin
dbms_xs_sessions.create_session( 'ras_user', ras_session );
dbms_xs_sessions.attach_session( ras_session );
dbms_xs_sessions.create_namespace( 'NamespaceTest' );
dbms_xs_sessions.set_attribute( 'NamespaceTest', 'some_value','Hello World' );
for rec in ( select xs_sys_context( 'NamespaceTest', 'some_value') mixed_name
,xs_sys_context( upper( 'NamespaceTest' ), 'some_value') upper_name
,xs_sys_context( lower( 'NamespaceTest' ), 'some_value') lower_name
,xs_sys_context( 'XS$Session', 'session_id') mixed_session
,xs_sys_context( upper('XS$Session'), 'session_id') upper_session
,xs_sys_context( lower('XS$Session'), 'session_id') lower_session
)
loop
dbms_output.put_line( 'Mixed Case Name = "' || rec.mixed_name || '"');
dbms_output.put_line( 'Upper Case Name = "' || rec.upper_name || '"');
dbms_output.put_line( 'Lower Case Name = "' || rec.lower_name || '"');
dbms_output.put_line( 'Mixed Case Session = "' || rec.mixed_session || '"');
dbms_output.put_line( 'Upper Case Session = "' || rec.upper_session || '"');
dbms_output.put_line( 'Lower Case Session = "' || rec.lower_session || '"');
end loop;
dbms_xs_sessions.detach_session();
dbms_xs_sessions.destroy_session( ras_session );
end;
/
REM cleanup
begin
xs_namespace.delete_template( 'NamespaceTest' );
xs_principal.delete_principal( 'ras_user' );
end;
/