一、问题简介

1、开发环境

操作系统:win10

数 据 库:Oracle11g

数据库连接工具:Navicat  Premium

2、问题简述

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

二、问题解决方案

1、原因分析

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

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

  1 select * from "emp"

运行结果如下:

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数据库时,需要在【高级】选项卡中勾选【转换对象名为大写】才可。

  

4、PowerDesigner解决办法

(1)修改Naming Convention配置

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

(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”即可!

解决方案 -SQL脚本建表产生ORA-00942错误的更多相关文章

  1. [转] 使用SQL脚本查看表空间使用率和使用dba_tablespace_usage_metrics视图的差别

    传统的SQL脚本查看表空间使用率,使用的关键视DBA_DATA_FILE和DBA_FREE_SPACE. Oracle 11g引入了DBA_TABLESPACE_USAGE_METRICS视图.其实, ...

  2. sql语句建表,并且自增加主键

    sql语句建表,并且自增加主键 use [test] CREATE TABLE [dbo].[Table_4] ( [userid] [int] IDENTITY(1,1) NOT NULL, CON ...

  3. SQL脚本修改表结构

    SQL脚本修改表结构 新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default ...

  4. SAE上使用本地sql文件建表时出错解决方法

    在SAE上部署网站时需要上传本地的数据库结构,我也导出了本地数据库为sql文件,但是上传到SAE上时遇到了如下错误: MySQL 返回: #1044 - Access denied for user ...

  5. SQL基础-建表

    一.建表 1.创建表的两种方式 *客户端工具 *SQL语句 2.使用SQL语句创建表 表名和字段名不能使用中文:(一般为字母开头,字母.数字.下划线组成的字符串): CREATE TABLE关键字后跟 ...

  6. SQL 查询建表SQL

    1.新建一个查询语句,按执行按钮 2.结果页面会显示一条sql语句,复制该语句即可建表 3.建表测试

  7. .NET调用osql.exe执行sql脚本创建表和存储过程

    using System;using System.Diagnostics;using System.Windows.Forms; namespace WindowsFormsApplication1 ...

  8. 常用的sql标准建表语句

    使用指定数据库 use v4base 建一张表 /*************************************************************************** ...

  9. 使用SQL语句建表,插入数据

    --选中数据库,点击新建查询,然后执行即可--这是SQL中的注释信息,使用两个减号来注释. drop table Book --删除表Book create table Book --创建表Book ...

随机推荐

  1. 2.Struts2配置文件

    1.配置文件的加载顺序 0. 需要掌握         * 加载了哪些个配置文件(重点的)         * 配置文件的名称是什么         * 配置文件的位置         * 配置文件的 ...

  2. main中的argc,argv

    那么我们运行程序时,传入的参数,就是这个argc的值:从截图中,我们很清楚的可以看出,argc是传入参数的个数,”传入的参数“加上可执行文件的文件名:  

  3. canvas 压缩图片上传

    问题:前端开发过程中难免会将数据提交到后台,但若是提交的数据过大,特别上传图片这类需求,如果不对上传的图片进行压缩处理,就难免会出现请求时间过长的情况,对于用户体验肯定就不是太友好,那么这时候该如何将 ...

  4. JUC 一 CyclicBarrier 与 Semaphore

    java.util.concurrent CyclicBarrier简介 CyclicBarrier:可重用屏障/栅栏 类似于 CountDownLatch(倒计数闭锁),它能阻塞一组线程直到某个事件 ...

  5. NX二次开发-NXOpen中Point3d类型转换成point类型

    NX9+VS2012 #include <NXOpen/NXObject.hxx> #include <NXOpen/Part.hxx> #include <NXOpen ...

  6. NX二次开发-获取按钮的ID UF_MB_ask_button_id

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  7. mysql复制以及一主多从等常见集群概述

    1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并 ...

  8. Keystone controller.py & routers.py代码解析

    目录 目录 Keystone WSGI 实现 controllerspy routerspy 参考文档 Keystone WSGI 实现 Keystone 项目把每个功能都分到单独的目录下,EXAMP ...

  9. 全面解读PHP面试

    php面试考察点    1.PHP基础知识 引用变量 常量及数据类型 运算符及流程控制 自定义函数及内部函数 正则表达式 文件及目录处理 会话控制 面向对象 网络协议 开发环境相关考点 2.JavaS ...

  10. 【Android】Retrofit网络请求参数注解,@Path、@Query、@QueryMap.

    对Retrofit已经使用了一点时间了,是时候归纳一下各种网络请求的service了. 下面分为GET.POST.DELETE还有PUT的请求,说明@Path.@Query.@QueryMap.@Bo ...