是否可以通过 VB 脚本为进程设置区域设置?
Dim oEnv: Set oEnv = WshShell.Environment("PROCESS")
oEnv.Item("NLS_LANG") = "AMERICAN_AMERICA.WE8MSWIN1252"
这是我得到的一段代码。不知道它是如何工作的?我想为我从英国到美国的申请设置标准和格式。
谢谢尼山特
是否可以通过 VB 脚本为进程设置区域设置?
Dim oEnv: Set oEnv = WshShell.Environment("PROCESS")
oEnv.Item("NLS_LANG") = "AMERICAN_AMERICA.WE8MSWIN1252"
这是我得到的一段代码。不知道它是如何工作的?我想为我从英国到美国的申请设置标准和格式。
谢谢尼山特
您的计算机使用环境变量来记住应用程序的某些内部设置。您可以通过按 Windows 键(标志)+暂停/中断,选择高级选项卡,按环境变量按钮并查看系统变量部分来查看它们。
使用 WshShell.Environment 对象,您可以读取和写入这些变量:
Option Explicit
dim wshshell, EnvVar
set WshShell = WScript.CreateObject("WScript.Shell")
Dim oEnv: Set oEnv = WshShell.Environment("PROCESS")
' This shows you all environment variables in your system:
For each EnvVar in oEnv
msgbox EnvVar
Next
' This shows you a particular environment variable:
msgbox oEnv.item("OS")
' And this sets a particular environment variable:
oEnv.Item("NLS_LANG") = "AMERICAN_AMERICA.WE8MSWIN1252"
NLS_LANG
是 Oracle 使用的设置,用于设置文化设置。通过将其设置为AMERICAN_AMERICA.WE8MSWIN1252
您告诉您的 Oracle 实现您希望在您的特定系统上使用哪种文化(请记住,环境变量是每台 PC 的)。您可以在 网上找到更多有关这方面的 信息。
这需要在注册表中设置。您使用的注册表路径因您使用的版本而异。
对于 Oracle 版本 7:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
Const HKEY_LOCAL_MACHINE = &H80000002
strKeyPath = "SOFTWARE\ORACLE"
strValueName = "NLS_LANG"
strValue = "AMERICAN_AMERICA.WE8MSWIN1252"
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue
对于 Oracle 数据库版本 8、8i 和 9i:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx\ 其中“x”是标识 Oracle 主目录的唯一编号。HOME0是第一次安装
Const HKEY_LOCAL_MACHINE = &H80000002
strKeyPath = "SOFTWARE\ORACLE\HOMEx"
strValueName = "NLS_LANG"
strValue = "AMERICAN_AMERICA.WE8MSWIN1252"
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue
对于 Oracle 数据库 10g:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_
Const HKEY_LOCAL_MACHINE = &H80000002
strKeyPath = "SOFTWARE\ORACLE\KEY_<oracle_home_name>"
strValueName = "NLS_LANG"
strValue = "AMERICAN_AMERICA.WE8MSWIN1252"
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue