system.argumentexception:“路径中具有非法字符。”_日常工作中碰到的几个技术问题...

最近工作中,碰到了几个技术问题,记录于此。

问题1,PLSQL Developer中文显示问题

PLSQL Developer中写的SQL,例如列的别名包含了中文,就提示错误,如下所示,

ce8bd218e148f6cf5d0b33194a036efc.png

很可能是系统不识别中文,认为是个非法的字符,所以提示这个错。

在系统环境变量增加,

NLS_LANG=SIMPLIFIED_CHINESE_CHINA.ZHS16GBK

3f3edb8ed1c3958275ec3cfbc969380a.png

重启PLSQL。

问题2,Windows 10安装PLSQL Developer

实测在Windows 10上,可以选择PLSQL Developer 9.0.6版本,下载链接,

https://www.allroundautomations.com/registered-plsqldev/

e05e84fff484b50ab1507dacf7c85242.png

Oracle Client可以选择32位的Oracle 11g Client,下载链接,如下所示,

https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html

2ab181aead83e96e6efef0e53d9d407e.png

773b741c205f32b580796235a325887b.png

实测这个组合,是可以使用的,其他组合,我没尝试,如果有朋友试过,可以提醒一下。

问题3,PLSQL Developer登录报错ORA-12504

Oracle Client下载包解压缩,默认当前路径,没有tnsnames.ora,自己创建一个,增加数据库配置,但是登录PLSQL Developer,提示ORA-12504,远程数据库启动,监听正常,

0f65a457cc3e8ec817331e924b6783ed.png

实测,tnsnames.ora放在Clinet当前路径下,不能生效,需要在Client当前路径下创建network/admin,tnsnames.ora放到network/admin文件夹中,才可以生效。

问题4,Windows 10的PLSQL Developer字体显示很小

如下图所示,PLSQL Developer字体显示很小,

7b5738bb6d071e315d486dcdce429664.png

PLSQL Developer图标右键“属性”,选择“更改高DPI设置”,

fcd4ef6664e8fb81bcad3f7636fa8223.png

勾选“替代高DPI缩放行为。缩放执行”,选择“系统”,

ec6321bf26d7d97d4920c49e7b963075.png

重启生效,

6c4cdb7a160f0f9807e44ba54ef66636.png

问题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 2020Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>

同理,如果在密码中,包含特殊字符,操作同上。

问题6,执行10053未生成trace

有时候执行SQL的10053,但是未生成trace文件,原因就是这次执行的SQL并未经历硬解析,不能覆盖整个编译的过程。

10053事件可以创建优化器的trace,因此又叫优化器跟踪文件(Optimizer trace file),这个文件能告诉我们Oracle为什么选择这种,而不是另一种执行计划,相应的成本值等一系列信息,让我们更加了解CBO的选择。得到10053的trace前提就是必须真正执行这条SQL。因此,语句中加个空格,或者执行其他可以让他硬解析的操作,就可以得到trace了。

关于10053,可以参考,

《PL/SQL中SQL语句10053创建方法》

《有关10053事件,你知道这两个知识点么?》

《探索索引的奥秘 - 10053事件》

近期更新的文章:

《了解一下sqlhc》

《Oracle的MD5函数介绍》

《Oracle 19c的examples静默安装》

《sqlplus登录缓慢的解决》

《VMWare 11安装RedHat Linux 7过程中碰到的坑》

《COST值相同?是真是假?》

《Oracle 11g的examples静默安装》

《同名的同义词和视图解惑》

《v$和v_$的一些玄机》

文章分类和索引:

《公众号700篇文章分类和索引》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值