最近工作中,碰到了几个技术问题,记录于此。
问题1,PLSQL Developer中文显示问题
PLSQL Developer中写的SQL,例如列的别名包含了中文,就提示错误,如下所示,
很可能是系统不识别中文,认为是个非法的字符,所以提示这个错。
在系统环境变量增加,
NLS_LANG=SIMPLIFIED_CHINESE_CHINA.ZHS16GBK
重启PLSQL。
问题2,Windows 10安装PLSQL Developer
实测在Windows 10上,可以选择PLSQL Developer 9.0.6版本,下载链接,
https://www.allroundautomations.com/registered-plsqldev/
Oracle Client可以选择32位的Oracle 11g Client,下载链接,如下所示,
https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html
实测这个组合,是可以使用的,其他组合,我没尝试,如果有朋友试过,可以提醒一下。
问题3,PLSQL Developer登录报错ORA-12504
Oracle Client下载包解压缩,默认当前路径,没有tnsnames.ora,自己创建一个,增加数据库配置,但是登录PLSQL Developer,提示ORA-12504,远程数据库启动,监听正常,
实测,tnsnames.ora放在Clinet当前路径下,不能生效,需要在Client当前路径下创建network/admin,tnsnames.ora放到network/admin文件夹中,才可以生效。
问题4,Windows 10的PLSQL Developer字体显示很小
如下图所示,PLSQL Developer字体显示很小,
PLSQL Developer图标右键“属性”,选择“更改高DPI设置”,
勾选“替代高DPI缩放行为。缩放执行”,选择“系统”,
重启生效,
问题5,包含特殊字符的Oracle用户名创建
用户名中包含特殊字符,例如@、%、&、¥、#,直接create user报错,
SQL> create user wang-wl identified by a;
create user wang-wl identified by a
*
ERROR at line 1:
ORA-00922: missing or invalid option
需要使用双引号,将特殊字符括住,
SQL> create user "wang-wl" identified by a;
User created.
SQL> select username from dba_users;
USERNAME
----------------------------
wang-wl
登陆的时候,用户名和密码用'单引号括起来,包含特殊字符的用户名,使用"双引号括起来,
[oracle@vm-app ~]$ sqlplus '"wang-wl"/a'
SQL*Plus: Release 11.2.0.4.0 Production on Thu Dec 3 17:04:07 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
同理,如果在密码中,包含特殊字符,操作同上。
问题6,执行10053未生成trace
有时候执行SQL的10053,但是未生成trace文件,原因就是这次执行的SQL并未经历硬解析,不能覆盖整个编译的过程。
10053事件可以创建优化器的trace,因此又叫优化器跟踪文件(Optimizer trace file),这个文件能告诉我们Oracle为什么选择这种,而不是另一种执行计划,相应的成本值等一系列信息,让我们更加了解CBO的选择。得到10053的trace前提就是必须真正执行这条SQL。因此,语句中加个空格,或者执行其他可以让他硬解析的操作,就可以得到trace了。
关于10053,可以参考,
近期更新的文章:
《VMWare 11安装RedHat Linux 7过程中碰到的坑》
文章分类和索引: