安装Oracle 10g inistant client后是PL/SQL出现乱码
想使用PL/SQL开发工具,但不想安装那个几百兆的oracle客户端,于是安装了oracle 10g inistant client,40多M吧。
安装后PL/SQL可以用了,但是查询出记录里面的中文却是乱码。折腾了好久才找出解决方法:
设置环境变量:NLS_LANG,值为Oracle数据库设置的字符集,在我的系统里面设置是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
PS: Oralce自己的开发工具SQL Developer在这种情况下没有乱码的情况,而且也不需要安装oracle的客户端,大部分情况下还是够用的。
相关文档:
crsctl stop crs
killall init.crsd
cd /etc/init.d
rm -rf init.crs init.crsd init.cssd init.evmd
rm -rf /tmp/.oracle/
rm -rf /var/tmp/
rm -rf /var/tmp/.oracle/
cd /etc
rm -rf oraInst.loc oracle/ oratab
rm -rf $ORACLE_BASE
dd if=/dev/zero of=/dev/raw/raw_voting_disks bs=1024k
dd if=/dev/zero ......
在window服务启动时并不启动实例的两种方法:
(1)通过oradim startup 参数设定,如下:
a.查看oradim帮助
C:Documents and SettingsAdministrator>oradim help
DIM-00002: 有效的命令包括: -DELETE, -EDIT, -NEW, -STARTUP 和 -SHUTDOWN
请输入以下命令之一:
通过指定以下参数创建例程:
-NEW - ......
oracle中sql语句中select * from t_Test t where t.Id in(1,2,3......)/*数量不能大于1000个*/
解决方法 分割成多次in 然后再或上 如 select * from t_Test t where t.Id in(1,2,3......800) or t.Id in(801,802,803......1300)
在使用中最好能不使用其他条件来代替in
......
如果表中存放的数据是树形结构,当知道某一个节点的值时,同时想取得它所有子节点的数据。
表结构:
表中存放的是部门组织结构, BMN_CD部门,SSK_KAISO_LV是阶层,BMN_MKJ部门名称,JOI_KAISO_LV上 ......
一、sql语句的执行步骤:
1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。
2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。
3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。
4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式 ......