暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

日常工作中碰到的几个技术问题

929

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

问题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,可以参考,

          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篇文章分类和索引

          文章转载自bisal的个人杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论