问题描述
有时,SQL*Plus中显示的数据字体太小,怎样改变SQL*Plus中显示的字体大小?
问题分析
Oracle中所使用的SQL*Plus有两种,一种是基于MS-DOS的SQL*Plus,其对应的命令程序为sqlplus.exe,存放在D:\oracle\product\10.2.0\db_1\bin\目录下。另一个是基于Windows的sqlplusw.exe。由于字体的改变对MS-DOS环境并无影响,因此,它仅对sqlplusw.exe有效,其主要原因是,在Windows环境下启动sqlplusw.exe时,需要读取注册表,所以,更改字体的大小,只需更改注册表信息即可。
问题解答
具体步骤如下。
步骤1:打开注册表定位于Oracle产品所在的入口项:hkey_local_machine\software\oracle\ key_OraDb 10g_home1。其中,key_OraDb 10g_home1是当前Oracle数据库服务器安装的位置,如果安装了另一个Oracle产品,则会出现HOME1,依次类推。
步骤2:在当前注册表项下,添加两个“字符串值”。 ·sqlplus_font,其值为“terminal”。
·sqlplus_font_size,其值为14,或其他大小的值,如16、18等。 步骤3:关闭注册表,启动sqlplusw.exe即可生效。
另外,与字体有关的是不同字符集数据的显示问题。如果要更改在客户端显示的字符集,则在MS-DOS提示符下,更改参数nls_lang的字符集。例如,将参数nls_lang设置成繁体中文(Traditional Chinese),则命令为:
set nls_lang=traditional chinese_taiwan.zht16mswin950 如果设置成中文简体(Simplified Chinese),则命令为: set nls_lang=simplified chinese_china.ZHS16GBK
实际上,注册表中nls_lang的参数值并没有因为上面命令的执行而发生改变,其中的参数值是Oracle数据库所采用的字符集。因此,只能在MS-DOS模式下,使用命令set nls_lang=language_territory.character_set来改变每个会话进程当前语言字符集下的显示内容。这为不同的会话进程中显示不同语言文字信息提供了极大的方便。
完成nls_lang参数更改后,便可启动SQL*Plus,内容就会正确显示。如果要永久性地改变nls_lang参数,则打开“控制面板”→“系统”→“环境变量”,从中创建新的环境变量nls_lang,其值为要更改的值,例如日文值为Japanese_Japan.UTF8。重新启动系统即可生效。
使用Administration Assistant for Windows也可以完成对Oracle数据库字符集以及在SQL*Plus中改变字体等设置。首先,启动Administration Assistant for Windows,然后,将各级目录展开,在“Oracle主目录”下找到“OraDB 10g_home1”,在其上单击鼠标右键,在出现的下拉菜单中选择“属性”,出现对话框。从中选择要编辑修改的项,修改其参数值即可。
--转自