Oracle查询提示 ORA-00933: SQL command not properly ended 原因排查

Posted 林深时见鹿10years

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle查询提示 ORA-00933: SQL command not properly ended 原因排查相关的知识,希望对你有一定的参考价值。

Oracle查询提示 ORA-00933: SQL command not properly ended 原因排查

问题描述

一段sql语句,在postgre数据库中运行未出现问题,切换到oracle数据库后报错。SQL语句如下

select T.code as CODE
from info_table as T

在oralcle执行后报如下错误

> ORA-00933: SQL command not properly ended

问题排查与解决

在网上查询了该报错之后看到了如下信息

出现这个错误的情况还是挺多的,当抛出此错误提示信息,代表着SQL语句本身就是有问题的!(ORA-00933:SQL命令没有正确的结束)比如:
1:可能SQL语句中关键字前后缺少空格
2:Oracle 给表起别名时,直接在表名的后面空格别名就可以,不需要AS
3:SQL 语句中缺少关键字或者多了某个关键字,比如:AND
4:SQL 语句中缺少关键字或者多了某个标点符号,比如:,
5:数据库不同的版本或不同的数据库支持的SQL的语法规则是不一样的,一句SQL语句在一个数据中是正确的在另一个数据库中未必也正确

我的语句中正好存在表别名,且加了as关键字。去掉as改成如下语句,顺利解决问题

select T.code as CODE
from info_table T

相关链接: ORA-00933: SQL command not properly ended.

imp命令导入dmp文件,提示成功无警告,但是在pl sql 查询,提示表不存在,是怎么回事?

我用的命令是 imp system/system@orcl file=str.dmp full=y
str.dmp用户名密码是ora/oracle
用system/system登陆pl/sql developer,然后查询,提示表不存在
在命令提示符中重新导入,已经存在,导入失败
是不是导入有问题,oracle新手,请详细回答,谢谢
可以了,原来要这样查询的 select * from ora.表名 用的ora登陆的,为什么还要这样用而不能直接用表名呢?

参考技术A 导入没问题的,看下其他用户下有没有 参考技术B 恭喜了,
oracle 就是用schema.对象名来区分的.
除非你建立同义词
参考技术C 是不是在不同的用户下?本回答被提问者采纳

以上是关于Oracle查询提示 ORA-00933: SQL command not properly ended 原因排查的主要内容,如果未能解决你的问题,请参考以下文章

在 Oracle 11g 中,JPA 生成的 SQL 使用“fetch first ? rows only”失败并出现 ORA-00933

oracle 问题 ORA-00933: SQL 命令未正确结束 如何解决?

如何解决 ORA-00933:SQL 命令未在 oracle 中正确结束?

oracle ORA-00933;SQL 命令未结束!在线等

在更新 cx_oracle 中的表时出现 DatabaseError: ORA-00933: SQL 命令未正确结束

ORACLE 两个order by的SQL使用 UNION 或者 UNION ALL 报错 ORA-00933:sql命令未正确结束