zoukankan      html  css  js  c++  java
  • 解决方案 -SQL脚本建表产生ORA-00942错误

    一、问题简介

    1、开发环境

          操作系统:win10

          数 据 库:Oracle11g

          数据库连接工具:Navicat  Premium

    2、问题简述

           在使用SQL Development、Navicat  Premium、powerdesigner生成SQL脚本 或 使用Navicat  Premium的“数据传输”功能,将旧的数据库复制到Oracle数据库后,再使用select查询语句查询表中记录会出错。

         image

    二、问题解决方案

    1、原因分析

         Oracle数据库的语法是大小写敏感的,通过SQL语句创建表时,会自动将表名转换成大写。但是如果表名或字段名加上""后,Oracle不会将双引号内的表名变成大写。通过数据库连接工具、数据传输功能生成的SQL语句中的表名生成都带有双引号。

                                        image

           在Oracle数据库执行这种语句后,表名就变成了【表名加双引号】的方式。我们可以通过表名加双引号的方式来查询表。

      1 select * from "emp"

    运行结果如下:

             image

    2、更改表名和别名

      1 --修改表名
      2 --方法一:ALTER TABLE "emp"  RENAME TO emp;
      3 --方法二:create emp as select * from "emp";
      4 --方法三:使用rename方法,但只能修改当前用户下的表
      5 rename "emp" to emp;
      6 rename "dept" to dept;
      7 rename "SALGRADE" to SALGRADE;
      8 rename "sysdiagrams" to sysdiagrams;
      9 
     10 --修改字段名
     11 alter table dept rename column "deptno" to deptno;
     12 alter table dept rename column "dname" to dname;
     13 alter table dept rename column "loc" to loc;
     14 
     15  --测试程序
     16 select * from emp;
     17 select * from dept;
     18 select * from SALGRADE;
     19 select * from sysdiagrams;
     20 
     21 select * from dept  where deptno = 10

    3、Navicat  Premium解决办法

           使用Navicat  Premium进行数据传输,把其他数据库中的数据传输到Oracle数据库时,需要在【高级】选项卡中勾选【转换对象名为大写】才可。

         搜狗截图20180125113829   搜狗截图20180125113803

    4、PowerDesigner解决办法

    (1)修改Naming Convention配置

        在[Tools->Model Options->Naming Convention]中,把Name和Code的Charcter case属性设成Uppercase(只要不是混合模式即可)。

                            image

    (2)修改CaseSensitivityUsingQuote配置

          在【Database->Edit current database->Script->Sql->Format】下将CaseSensitivityUsingQuote的comment为“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”即可!

                image

  • 相关阅读:
    最简单的图片轮播
    首页图片轮播效果
    windows简单杀死进程的批处理程序
    js实现无限级树形导航列表
    漂亮竖向菜单 有缓存 javascript
    竖向折叠二级导航JS代码(可防刷新ul/li结构)
    bzoj 1060: [ZJOI2007]时态同步【树形dp】
    bzoj 2733: [HNOI2012]永无乡【并查集+权值线段树】
    洛谷 P3952 时间复杂度【模拟】
    bzoj 2208: [Jsoi2010]连通数【tarjan+拓扑+dp】
  • 原文地址:https://www.cnblogs.com/sh086/p/8338466.html
Copyright © 2011-2022 走看看