我的小本子上安装了N多的东西,如果再安装个Oracle的完整数据库的话,机器的启动和运行速度实在是不能忍受。偶然的一天在Oracle的网站上看到了Oracle 10g Express,小而精悍,学习之用是足够的了(与SQLServer的2005 Express一回事)。赶快去下一个 [url]http://www.oracle.com/technology/products/database/xe/index.html[/url] ,我系统是中文,所以选择了中文版。然后安装,数据库默认字符集是UTF-8,NLS_LANG则是根据系统的locale来确定,我中文系统所以是CHINESE_CHINA.ZHS16GBK。其中让你输入sys和sysdba的密码,配置什么的都是自动的,安装完后有个信息提示,包括数据库端口,http端口等。
        接下来问题就出现了,当我用PL/SQL Developer连接数据库的时候,提示数据库的字符集与客户端的字符集不相符,建议修改。那就该吧:设置Oracle的系统变量
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
 
或者:
打开注册表,找到如下字符串:
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_XE]
修改右面的NLS_LANG值为SIMPLIFIED CHINESE_CHINA.AL32UTF8
 
OK,一切都正常了。
 
          然后的问题就是HTTP的监听端口8080,好多web服务器都是这个端口,不方便开发,我们来改掉它。登录pl/sql,然后创建一个sql窗口,输入如下代码执行:
call dbms_xdb.cfg_update(updateXML(
dbms_xdb.cfg_get()
, '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
,8000))
--将原有的8080改为8000,或其他合适的端口号
 
或者,执行oracle的自带sql plus:
SQL>connect / as sysdba;  
SQL> call dbms_xdb.cfg_update(updateXML(  
    2        dbms_xdb.cfg_get()  
    3      , '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'  
    4      , 8081))  
    5  /  

  Call completed.
 
就可以了。
 
在网上也看见了个修改Oracle ftp端口:
SQL> -- Change the FTP port from 2100 to 2111  
  SQL> call dbms_xdb.cfg_update(updateXML(  
    2         dbms_xdb.cfg_get()  
    3       , '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'  
    4       , 2111))  
    5  /  

  Call completed.
 
另:
允许远程访问Oracle Application Express,用sqlplus执行
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
然后重起lsnrctl