Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: 9.2.0.6 for win32
On Tue, 9 Nov 2004 14:28:17 +0000, Niall Litchfield
<niall.litchfield_at_gmail.com> wrote:
> I tend to agree. For the time being *all* threads that mention win32
> platforms in someway get starred in my gmail account.
Here is one for you, not necessarily related to the original poster's question.
Environment variables on windows behave in an unique way, and difficult to understand.
(1) There are two *types* of environment variables, system and user. In one case, e.g. 'path', the system and user variables are concatenated and the combined value becomes the value of the environment variable.
On the other hand, e.g. 'typicalOracleEnvVariable', the system and user variables are not concatenated and the user variable masks the system environment variable.
(2) The environment variables may be set for the current session, e.g. command prompt or w32 executable, using 'set', but 'set' does not *persist* to future sessions. For the opposite effect, using 'setx', the current session environment variable is not affected, but the 'setx' environment setting will effect future sessions. If you incorrectly set a system (vs user) environment variable with 'setx' it may cause irrepairable damage, because it persists globally.
(3) Fortunately, distinct user account receive *private* user environment variables, and share system variables. Private environment variables, via multiple user accounts, may not be used by newbie or 'graphical interface' administrators because of the need to configure and login to multiple accounts. Administering user accounts can be complex on windows, too.
(4) There are plenty of environment variable quirks. What would you
expect from the following cases? E.g.
- Same environment variable defined at both system and user level.
System variable call 'foo' is set to value 'myfoo', and user variable
'foo' is set null. Test: open a command prompt and type 'echo %foo%'.
Does a null user variable mask the system environment variable? Is it
the same behaviour for 'foo' as for 'path'?
- The 'setx' command may effect other sessions if used to set system
variables. It depends on timing when the 'setx' runs against when the
other session starts.
- Most sessions do not re-evaluate their environments after launch.
But, I'm not sure exactly what happens in a multithreaded application,
or with exceptional applications.
- Using the GUI, e.g. My Computer|Properties|Advanced|Environment
Variables, is another confusing tool. It has different sections for
system and user, and you can create, edit, or delete variables but
they do not officially change until you commit (click ok) or rollback
(click cancel) on the Environment Variables dialog. Lots of room for
error.
Windows can be enjoyable, keep saying it. ;-)
Regards,
Mike Thomas
-- http://www.freelists.org/webpage/oracle-lReceived on Tue Nov 09 2004 - 11:02:29 CST
![]() |
![]() |