2010年6月9日星期三

VIM comment out map

" lhs comments
vmap ,# :s/^/#/:nohlsearch
vmap ,/ :s/^/\/\//:nohlsearch
vmap ,> :s/^/> /:nohlsearch
vmap ," :s/^/\"/:nohlsearch
vmap ,% :s/^/%/:nohlsearch
vmap ,! :s/^/!/:nohlsearch
vmap ,; :s/^/;/:nohlsearch
vmap ,- :s/^/--/:nohlsearch
vmap ,c :s/^\/\/\\|^--\\|^> \\|^[#"%!;]//:nohlsearch

" wrapping comments
vmap ,* :s/^\(.*\)$/\/\* \1 \*\//:nohlsearch
vmap ,( :s/^\(.*\)$/\(\* \1 \*\)/:nohlsearch
vmap ,< :s/^\(.*\)$//:nohlsearch
vmap ,d :s/^\([/(]\*\\|\)$/\2/:nohlsearch

" block comments
vmap ,b v`k0i/*`>j0i*/
vmap ,h v`k0i


ref http://nanasi.jp/articles/vim/commentout_source.html

2010年6月7日星期一

Oracle管理常用SQL文

查看管理者权限
SELECT grantee FROM dba_role_privs WHERE granted_role = 'DBA';

查看SYSDBA权限
SELECT * FROM v$pwfile_users;

表空间追加数据文件
ALTER TABLESPACE 表空间名 ADD DATAFILE 'データファイル' SIZE 大小KM;

改变数据文件大小
ALTER DATABASE 数据库名 DATAFILE '文件名' RESIZE SIZE 大小KM;

表领域情报
DBA_TABLESPACES
V$TABLESPACE

数据文件
DBA_DATA_FILES
V$DATAFILE

查看数据库运行模式
ARCHIVE LOG LIST

临时文件
SELECT * FROM v$tempfile;

数据文件
SELECT * FROM v$dbfile;

查看恢复文件
SELECT file#, online_status, error FROM v$recover_file;

查看控制文件
SELECT status, name FROM v$controlfile;

查看Oracle错误代码详细信息
-- ORA-00205
SQL>!oerr ora 205

查看死锁
SELECT sid, s.username, l.type, l.id1, l.lmode, l.block, l.request, l.ctime
FROM v$lock l JOIN v$session s USING (sid)
WHERE s.type = 'USER';

中止会话
ALTER SYSTEM KILL SESSION 'SID列値, SERIAL#列値;

2010年6月6日星期日

在Ubuntu下安装Oracle10 XE

原本想试试在Ubuntu下面安装Oracle11g。
看了文档才知道Oracle企业版还不支持Debian分支。目前还只支持Redhat Enterprise Linux环境。
所以熟悉RedHat环境还是很重要。

因为Oracle11g至少需要1G的内存,我的旧电脑没法满足这个条件,所以也就没有换成Redhat系统。

Oracle有一个称为XE的免费版支持Debian分支。除了连接数限制,Web管理界面不同之外,学习用途也足够了。
所以下面我就贴出来OracleXe的安装步骤

1.在/etc/apt/sources.list加入下面一行
deb http://oss.oracle.com/debian unstable main non-free
2.导入GPG密钥
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
3.更新apt数据
sudo apt-get update
4.安装OracleXe
sudo apt-get install oracle-xe-universal
5.配置Oracle数据库
sudo /etc/init.d/oracle-xe configure
6.设置环境
在 ~/.profile 文件中加入
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH
执行
source ~/.profile
7.允许外部访问管理页面
sqlplus sys as sysdba
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
8.访问管理页面
http://[serverip]:8080/apex

2010年6月2日星期三

Linux環境で日本語文字化け対応

たまにシステム内にShiftJISのロケールがなかったりします。
その時はmanマニュアルを参照すると文字化けします。

対処としては下記のように

function manj() { LANG=ja_JP.UTF-8 man $* | iconv -f utf8 -t sjis | less; }

それでmanの代わりにmanjを使えば日本語正しく表示されます。

Character set in Oracle

show database's character set used in datafile.

SELECT * FROM v$nls_parameters
WHERE parameter = 'NLS_CHARACTERSET';

or

SELECt * FROM nls_database_pramaters
WHERE parameter = 'NLS_CHARACTERSET';

set client character set
#以下の例は日本語のShiftJISを使用する
NLS_LANG=Japanese_Japan.JA16SJIS