ORA-00907: 缺失右括号,原因及解决办法整理
1 union all中order by 导致缺失右括号
在有union all的子查询中使用了order by,会导致缺失右括号的错误,事实上在有union all的子查询中根本没必要进行排序,因为联合之后又组成了一个新的集合,之前的排序对新集合而言没什么用,直接查询联合之后的新集合然后再进行排序即可。
示例如下:
select * from
(
select COLUMN_A,COLUMN_B
from TABLE_EXAMPLE_A
order by COLUMN_A
union all
select COLUMN_A,COLUMN_B
from TABLE_EXAMPLE_B
order by COLUMN_A
) A;
解决方案如下:
select * from
(
select COLUMN_A,COLUMN_B
from TABLE_EXAMPLE_A
union all
select COLUMN_A,COLUMN_B
from TABLE_EXAMPLE_B
) A;
order by COLUMN_A
2. in (子查询)的用法中,子查询不能使用order by!
此种情况跟1中描绘的有些类似,首先在in(子查询)用法使用order by 会报错,其次,子查询里用order by,纯属多此一举,子查询的目的,只是找出合适的数据。如果需要排序,在外边排即可。
示例如下:
Select * from TABEL_EXAMPLE where ID in(select ID from TABLE_EXAMPLE where ID>500 oder by ID DESC)
解决方案如下:
Select * from TABEL_EXAMPLE where ID in(select ID from TABLE_EXAMPLE where ID>500)oder by ID DESC
3. 创建表时,提示缺失又括号
3.1 创建表时关键字顺序错
示例如下:
CREATE TABLE T_EXAMPLE (
id serial primary key,
t_id int not null default 0
)
解决方案如下:
CREATE TABLE T_EXAMPLE (
id serial primary key,
t_id int default 0 not null
)
3.2 创建表时表中字段有关键字
示例如下:
CREATE TBALE T_EXAMPLE
(
id number(18,0) not null,
desc varchar(45) not null
)
解决方案如下:
给对应的关键字加上双引号
CREATE TBALE T_EXAMPLE
(
id number(18,0) not null,
“desc” varchar(45) not null
)
3.3 创建表时未对表中的字段设置长度
示例如下:
CREATE TABEL T_EXAMPLE
(
id bigint NOT NULL PRIMARY KEY,
name varchar NOT NULL
)
解决方案如下:
CREATE TABEL T_EXAMPLE
(
id bigint NOT NULL PRIMARY KEY,
name varchar(200) NOT NULL
)
3.4 创建主外键约束时外键类型跟主键类型不完全一致
主外键类型不完全一致时也会报缺失右括号的错误
4. SQL查询时发生缺失右括号错误
在查询时引发缺失右括号错误的原因大多数在于查询语句中有关于日期的转化、过滤。很多时候都是因为关于日期类型的转化少了单引号。
示例如下:
SELECT * FROM T_EXAMPLE Where T_DATE in(2015-01-20 22:37)
解决方案如下:
SELECT * FROM T_EXAMPLE Where T_DATE in(‘2015-01-20 22:37‘)
还有一种情况就是在where过滤中进行时间的转化时,有时候在sql/plus中直接执行没问题,但是在程序中却会出现错误。
示例如下:
SELECT * FROM T_EXAMPLE Where
ID in(select ID From T_EXAMPLE_B where D_DATE>=TO_DATE(‘2015-01-20’,’yyyy-mm-dd’))
该语句在数据库直接执行是没问题的,但是在程序中执行传入日期参数时有时会报缺失右括号的错误,为了解决这个问题,我们可以改变传入的日期参数的格式,如下:
SELECT * FROM T_EXAMPLE Where
ID in(select ID From T_EXAMPLE_B where D_DATE>=TO_DATE(20150120,’yyyy-mm-dd’))
还有一种关于oracle日期格式的错误是:ORA-01840:输入值对于日期格式不够长
示例如下:select to_date(2015-01-01,'yyyy-mm-dd') from dual
为了解决这个问题,我们也可以用改变传入的日期参数的格式,来解决,如下:
select to_date(20150101,'yyyy-mm-dd') from dual
5. 其他导致缺失右括号的原因
5.1 书写错误,确实缺少了一个括号
5.2 字段名缺少双引号
如果在创建表时,表字段名全部是大写,则不存在此问题
ORA-00907: 缺失右括号(通用解决办法)
PL/SQL 的SQL语句可以执行,但是放在hibernate中,后台打印,出现了错误. 错误的SQL解析:黄色为错误部分 Hibernate: select examine ...
loadrunner12-运行报错原因及解决办法整理集合
1.错误:已超过该load generator的CPU使用率80%: 答:机器内存过小,更换配置更好的机器来执行测试. 是因为虚机的内存过小,运行Controller需要消耗的CPU过高,超过了80% ...
ORA-00907: 缺失右括号 整理解决
ORA-00907: 缺失右括号 前言 最近在开发过程中使用oracle数据库,在程序中进行查询数据时遇到了“ORA-00907: 缺失右括号”的问题,但是如果直接把sql语句直接在数据库或PL/SQ ...
ORA-00907: 缺失右括号问题整理解决
ORA-00907: 缺失右括号 前言 近期在开发过程中使用oracle数据库,在程序中进行查询数据时遇到了"ORA-00907: 缺失右括号"的问题.可是假设直接把sql语句直接 ...
[转]ORA-00907: 缺失右括号
转至:http://www.cnblogs.com/Olive116/p/5149680.html ORA-00907: 缺失右括号 前言 最近在开发过程中使用oracle数据库,在程序中进行查询数据 ...
ORA-00907: 缺失右括号
创建表时出现ORA-00907: 缺失右括号的情况 调整关键字的顺序 CREATE TABLE s_dept(ID PRIMARY KEY NOT NULL NUMBER(7),NAME NOT NU ...
jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...
各种编码问题产生原因以及解决办法---------响应编码,请求编码,URL编码
响应编码 产生原因以及解决办法: 示例: package cn.yzu; import java.io.IOException; import javax.servlet.ServletExcept ...
.Net内存泄露原因及解决办法
.Net内存泄露原因及解决办法 1. 什么是.Net内存泄露 (1).NET 应用程序中的内存 您大概已经知道,.NET 应用程序中要使用多种类型的内存,包括:堆栈.非托管堆和托管堆.这里我们需 ...
随机推荐
Android真机调试的时候logcat中无法输出调试信息的解决办法
真机调试不输出日志到logcat的原因是手机厂商默认关闭了调试打印的功能,通过以下方法开启此方法. 下面以华为P6手机为例进行操作: 1.在拨号界面输入:*#*#2846579#*#* 进入测试菜单界 ...
apache 修改端口号 修改根目录 建立多个网站
修改apache端口号选择Apache下的httpd.conf,查找:Listen,你会看到 #Listen 12.34.56.78:80Listen 80把80改成90,保存就好了 修改WampSe ...
poj 2480 (欧拉函数应用)
点击打开链接 //求SUM(gcd(i,n), 1<=i<=n) /* g(n)=gcd(i,n),根据积性定义g(mn)=g(m)*g(n)(gcd(m,n)==1) 所以gcd(i,n ...
2012在数据库技术会议上的讲话PPT打包
2012技术大会演讲PPT打包 DB2 Overview of Disaster Recovery Options.pdf: http://www.t00y.com/file/76767890 ...
HDU 2414 Chessboard Dance (力模拟)
主题链接:HDU 2414 Chessboard Dance 意甲冠军:鉴于地图,>,
Struts2之Result详解
上一篇我们把Struts2中的Action接收参数的内容为大家介绍了,本篇我们就一起来简单学习一下Action的4种Result type类型,分为:dispatcher(服务端页面跳转):redir ...
Linux 文本行列转换
使用awk进行行列转换 假设有一个文件 test ,包含的数据遵循以下格式: 同一行数据,单词之间为1个空格" " 每一行都有同样多的数据,个数相同 处理命令: awk '{for ...
文件上传(StringMVC)
我们经常会使用的一个功能是文件下载,既然有文件下载就会有文件上传,下面我们来看一下文件上传是如何实现的 首先准备好一个页面 jsp