RE: nee Hyphenated user names: laundry list of "don't do this without a doggone good reason"

From: Mark W. Farnham <>
Date: Thu, 9 May 2019 13:11:41 -0400
Message-ID: <078001d5068a$459abd00$d0d03700$>

AMEN.   And bless you and your team for seeding such a list.  

Even if some items you list become “religious war” controversies pro and con, they will have been called out for consideration.  

The number of “features” included for backward compatibility and because ANSI says so is enormous and I believe you have gotten the 50-50 line correct when you wrote:

“you shouldn’t do most of them.”  

I would say without proof that “you should only do a tiny fraction of them without a specific reason why.” The more you can stay to the smallest core of functionality, the more you stay in the center of what most subsequent readers of the code immediately understand and the higher the frequency with which that syntax appears in regression tests at all layers.  

Again, bless you and your team.  


From: [] On Behalf Of Jeff Smith Sent: Thursday, May 09, 2019 10:22 AM
To:; Adric Norris Cc: ORACLE-L
Subject: RE: Hyphenated user names  

You can do many things…you shouldn’t do most of them.  

We’re building a list of ‘things you should NOT do in an Oracle Database’ – creating objects which require quoting is definitely one of those things.  


From: Patrice sur GMail <> Sent: Thursday, May 9, 2019 10:19 AM
To: Adric Norris <> Cc: ORACLE-L <> Subject: Re: Hyphenated user names  


I don't believe using quotation marks is practical for our users, they are connecting using an Oracle Forms app and we want their lives to be as simple as possible.  

On Thu, May 9, 2019, 11:15 Adric Norris <> wrote:

You actually can connect using such a username, but it's a bit of a PITA due to the quoting requirements.  

[SYSTEM_at_test ] SQL> create user "test-user" identified by "boGus1234%";

User created.

[SYSTEM_at_test ] SQL> grant create session to "test-user";

Grant succeeded.

[SYSTEM_at_test ] SQL> select username from dba_users where lower(username) like 'test%';



[SYSTEM_at_test ] SQL> conn "test-user"/boGus1234%_at_test

Specifying credentials on the command line may require nested quotes (likely depending upon platform), since the shell removes the outermost set before launching the client.  

$ sqlplus '"test-user"_at_testdr'

SQL*Plus: Release - Production on Thu May 9 09:11:09 2019 Version

Copyright (c) 1982, 2018, Oracle. All rights reserved.

Enter password:
Last Successful login time: Thu May 09 2019 09:09:08 -05:00

Connected to:
Oracle Database 12c Enterprise Edition Release - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options  

Not that I'd actually recommend doing this... but it is possible.  

On Thu, May 9, 2019 at 8:08 AM Patrice sur GMail <> wrote:

We discovered it is possible to create hyphenated usernames if quotation marks are used, but then people cannot connect.  

For now I am recommending they come up with different usernames or use _ instead of -.  

Maybe ASCII should not have conflated the hyphen and the minus sign but I suppose they were building on the typewriter keys back then.


"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move." -Douglas Adams

Received on Thu May 09 2019 - 19:11:41 CEST

Original text of this message