一、问题简介

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. 建站租用RAKsmart服务器的优势

    RAKsmart算是近年来受国内用户关注度颇高的美国服务器提供商.位于美国西海岸加州地区的RAKsmart机房,拥有超过十年的机房管理经验,提供了快速.稳定的服务器租用服务.那么RAKsmart服务器 ...

  2. docker gitlab backup

    说明:下面命令中带有<your container name>字,是 gitlab 容器的名称,请按实际情况进行代替 在创建备份之前,你不需要停止任何东西 docker exec -t & ...

  3. Thymeleaf语法总结

    Thymeleaf是Spring boot推荐使用的模板引擎. 一.th属性 html有的属性,Thymeleaf基本都有,而常用的属性大概有七八个.其中th属性执行的优先级从1~8,数字越低优先级越 ...

  4. django 模型ManyToMany 关联的添加,删除,查询

    models.py文件内容: from django.db import models class person(models.Model): name = CharField(max_length= ...

  5. NX二次开发-UFUN读取表格注释内容UF_TABNOT_ask_cell_text

    NX11+VS2013 #include <uf.h> #include <uf_ui.h> #include <uf_tabnot.h> #include < ...

  6. NX二次开发-UFUN批量操作图层状态UF_LAYER_set_many_layers_status

    NX11+VS2013 #include <uf.h> #include <uf_ui.h> #include <uf_layer.h> UF_initialize ...

  7. C++从string中删除所有的某个特定字符【转载】

    转载自https://www.cnblogs.com/7z7chn/p/6341453.html C++中要从string中删除所有某个特定字符, 可用如下代码 str.erase(std::remo ...

  8. 让nginx支持patchinfo,(支持codeigniter,thinkphp,ZF等框架)

    nginx 的config配置: server { listen ; server_name xxx; ....if (!-e $request_filename) { rewrite ^/(.*)$ ...

  9. Java-Class-FC:java.nio.charset.StandardCharsets

    ylbtech-Java-Class-FC:java.nio.charset.StandardCharsets 1.返回顶部   2.返回顶部 1.1.import java.nio.charset. ...

  10. Unity 如何修改 particle system 的 start color 属性

    代码如下: ParticleSystem ps = GetComponent<ParticleSystem>(); var main = ps.main; var color = Colo ...