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

  • 相关阅读:
    图书管理系统---基于form组件和modelform改造添加和编辑
    Keepalived和Heartbeat
    SCAN IP 解释
    Configure Active DataGuard and DG BROKER
    Oracle 11gR2
    我在管理工作中積累的九種最重要的領導力 (李開復)
    公募基金公司超融合基础架构与同城灾备建设实践
    Oracle 11g RAC for LINUX rhel 6.X silent install(静默安装)
    11gR2 静默安装RAC 集群和数据库软件
    Setting Up Oracle GoldenGate 12
  • 原文地址:https://www.cnblogs.com/sh086/p/8338466.html
Copyright © 2011-2022 走看看