[转]关于oracle sql语句查询时表名和字段名要加双引号的问题
- oracle初学者一般会遇到这个问题。
-
用navicat可视化创建了表,可是就是不能查到!后来发现②语句可以查询到
①select * from user;
但是,我们如果给user加上双引号就可以查到了!
②select * from "user";
难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论:
1、oracle表和字段是有大小写的区别。oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动转成大写。
2、我们在使用navicat使用可视化创建数据库时候,navicat自动给我们加上了“”。这样我们在创建数据库时实际的代码是这样的:(通过到处sql语句的文件,这样就不难理解我们为什么找不到表了。)
12345DROPTABLE"ROOT"."user";CREATETABLE"ROOT"."user"("userid"NUMBER(2)NOTNULL)-------到这里,我想那些总是用可视化来创建表和字段的人该吐槽navicat了。3、我用sql语句进行创建表和字段呢?
①不加双引号创建变:12345678910111213141516CREATETABLE"ROOT".personal_user_table (personal_id NUMBER(10)NOTNULL,login_name VARCHAR2(20 BYTE)NOTNULL,login_password VARCHAR2(20 BYTE)NOTNULL,register_timeDATENOTNULL,fullname VARCHAR2(20 BYTE)NOTNULL,sexCHAR(1 BYTE)NULL,id_cardCHAR(18 BYTE)NULL,email VARCHAR2(30 BYTE)NULL,telCHAR(11 BYTE)NULL,address VARCHAR2(64 BYTE)NULL,work_units VARCHAR2(64 BYTE)NULL,monthly_income NUMBER(8,2)NULL,bank_accountCHAR(20 BYTE)NULL,credit_rating NUMBER(1)NULL)结果是查询正常:

②加双引号,跟我们使用navicat可视化操作的结果一样:
12345678910111213141516CREATETABLE"ROOT"."personal_user_table"("personal_id"NUMBER(10)NOTNULL,"login_name"VARCHAR2(20 BYTE)NOTNULL,"login_password"VARCHAR2(20 BYTE)NOTNULL,"register_time"DATENOTNULL,"fullname"VARCHAR2(20 BYTE)NOTNULL,"sex"CHAR(1 BYTE)NULL,"id_card"CHAR(18 BYTE)NULL,"email"VARCHAR2(30 BYTE)NULL,"tel"CHAR(11 BYTE)NULL,"address"VARCHAR2(64 BYTE)NULL,"work_units"VARCHAR2(64 BYTE)NULL,"monthly_income"NUMBER(8,2)NULL,"bank_account"CHAR(20 BYTE)NULL,"credit_rating"NUMBER(1)NULL)结果如下:

因此建议:
1.建议我们的可视化操作者还是养成手写sql语句的习惯,我们在创建的时候就不要使用了双引号!这样我们就可以到达像mysql等一样不区分大小写了。
3、比较笨的方法是数据表名字大写,这样也可以避免此问题
原文链接
关于oracle sql语句查询时表名和字段名要加双引号的问题
[转]关于oracle sql语句查询时表名和字段名要加双引号的问题的更多相关文章
- 关于oracle sql语句查询时 表名和字段名要加双引號的问题具体解释
作为oracle的刚開始学习的人相信大家一定会遇到这个问题.如图: 明明就是navicat可视化创建了表,但是就是不能查到!这个为什么呢? select * ...
- 关于oracle sql语句查询时表名和字段名要加双引号的问题详解
转自:http://www.2cto.com/database/201504/387184.html 作为oracle的初学者相信大家一定会遇到这个问题,如图: 明明就是navicat可视化创建了表, ...
- SQL语句查询某表的所有字段及数据类型
SQL语句查询某表的所有字段及数据类型 SELECT name AS column_name , TYPE_NAME(system_type_id) AS column_type , max_leng ...
- Oracle中如何查询一个表的所有字段名和数据类型
Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_ ...
- Navicat查询哪些表有指定字段名
通常需要查询某个字段来自于哪张表,在navicat中没有直接查哪些表有指定字段名的功能,只能用sql来查. 1.(按字段名查表)查询哪些表有指定字段名(比如查字段名article_id)的SQL: S ...
- sql语句查询数据库表结构信息
开发中经常用到查询指定表及其字段的信息,以下是我整理的SQL语句查询方法,供自己平时使用也提供给大家参考! 1.适用MS SQL SERVER: SELECT 表名 = then d.name els ...
- 在oracle中操作表及字段注释,查询一个表的所有字段名以及属性和约束
1.查询表注释 SELECT * FROM USER_TAB_COMMENTS; 三列:TABLE_NAME,TABLE_TYPE,COMMENTS 2.查询字段注释 SELECT * FROM US ...
- 使用一条sql语句查询多表的总数
SELECT sum(列名1) 列名1,sum(列名2) 列名2,sum(列名3) 列名3 FROM ( SELECT count(*) 列名1, 列名2, 列名3 FROM 表1 -- WHERE ...
- SQL语句查询时防止SQL语句注入的方法之一
1.传参时有可能出现SQL语句注入 StringBuffer sb = new StringBuffer(); if(StringUtils.isNotBlank(areaCode)) { sb.ap ...
随机推荐
- SOD框架--系统概要
SOD框架(源PDF.NETE框架)系统概要介绍 --核心三大功能(S,O,D): SQL-MAP XML SQL config and Map DAL SQL Map Entity ORM OQL( ...
- mysql数据库表操作-表的主键索引和普通索引
数据库索引就象书的目录一样,如果在字段上建立了索引,那么以索引列为查询条件时可以加快查询数据的速度.查询数据库,按主键查询是最快的,每个表只能有一个主键列,但是可以有多个普通索引列,主键列要求列的所有 ...
- 开发Spring过程中几个常见异常(三):java.lang.ClassCastException: com.sun.proxy.$Proxy4 cannot be cast to com.edu.aop.ArithmeticCalculatorImpl at com.edu.aop.Main.main(Main.java:11)
这个异常是在开发Spring案例时遇到的. 贴一下完整异常信息: Exception in thread "main" java.lang.ClassCastException: ...
- Python date,datetime,time等相关操作总结
date,datetime,time等相关操作总结 by:授客 QQ:1033553122 测试环境: Python版本:Python 3.3.2 代码实践: __author__ = '授客' ...
- (网页)HTML5
1.html5基本格式: <!DOCTYPE> --> 文档类型声明. <html lang="zh-cn"> --> 表示html文档开始 & ...
- python的内置函数time
time 模块 1 >>> import time 2 >>> time.time() 3 1491064723.808669 4 >>> # t ...
- Redis内存数据库快速入门
Redis简介 Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理.它支持数据结构,如 字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的 ...
- Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "OraOLEDB.Oracle" for linked server xxxx
今天遇到了一个关于LINKED SERVER查询报错的案例,链接服务器链接ORACLE数据库,测试没有错误,但是执行脚本的时候,报如下错误: Msg 7399, Level 16, State 1 ...
- VsCode中使用Emmet神器快速编写HTML代码
一.Emmet简述 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具. 在前端开发的过程中,一大部分的工作是写 HTML.CSS 代码.特别是手动编写 HTML ...
- 在Linux系统上利用Tomcat搭建测试环境
第一歩:查看Linux系统的IP地址. 输入命令:ifconfig 第二歩:WinSCP工具 1.下载WinSCP工具,便于文件直接从windows系统直接拖动到Linux系统中,图形化创建文件夹等. ...