今天在编写Hibernate代码的时候,将对想保存到Oracle数据库时出现“表或视图不存在”的错误,但是进入数据库的时候发现表却是存在,并且可以编辑,经过分析,发现是因为建立表的时候带了"(双引号)造成的,比如下面是创建表的代码:
create table "ServiceSubscriber" (
"subscriberid" VARCHAR2(100) not null,
"email" VARCHAR(128),
"realName" VARCHAR2(50),
"pwd" VARCHAR2(30),
constraint PK_ODS_CUSTMR_SERVICESUBSCRIBE primary key ("subscriberid")
)
/
熟悉Orcale的朋友估计一眼就看出了,上面的表名和字段名都带有双引号,虽然可以建表成功,但是却无法通过Hibernate保存数据到表中。解决的办法就是在创建表的时候将上面的双引号删除即可。
create table ServiceSubscriber (
subscriberid VARCHAR2(100) not null,
email VARCHAR(128),
realName VARCHAR2(50),
pwd VARCHAR2(30),
constraint PK_ODS_CUSTMR_SERVICESUBSCRIBE primary key (subscriberid)
)
/
由于本人对Oracle非常不熟悉,所以具体原因只能根据推测:
Oracle创建表的一条规则为:
在命名表的时候可以使用大写或小写字母。只要表名或字段名没有用双引号括住,Oracle 对大小写就不敏感。Oracle 支持使用双引号 的语法。但是,最好不要直接使用双引号。
因为在建立查询的时候,表名和列名都应该带有双引号,而Hibernate生成的查询是不会带有双引号的,所以会出现无法找到表或视图的错误。
如果有小写的
则删除表的
drop table "tablename";
分享到:
相关推荐
ORA-01036:非法的变量名/编号 oracle特有的错误
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
ORACLE9i exp遇见EXP-00008 ORA-00942 EXP-00024错误的解决方法,详细描述了问题处理的过程和步骤,共享在此,希望能有所帮助
在运行查询SELECT * FROM V$SESSION 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。本文给出答案。
之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not currently know of SID given in connect descriptor
有关表死锁的详细图片 博文链接:https://meteor-1988.iteye.com/blog/1568695
1.Navicat OCI引⽤位置可以从Navicat菜单栏“⼯具”-》“选项”-》环境-》“OCI”中找到 2.Navicat替换的⽂件
ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = ...
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...
oracle12c程序连接时异常: ORA-01017: 用户名/口令无效; 登录被拒绝 的解决方案。
ORA-00312: online log 1 thread 1: '/oradata/10g/db/instant/redo01.log' SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4294967296 SCOPE=BOTH; System altered. SQL> shutdown immediate ORA-...
oracle报错ora-12541:TNS无监听程序
创建物化视图ORA-12014错误解决方法 创建物化视图ORA-12014错误解决方法
Oracle 11gr2连Oracle 19c 报ORA-28040 ORA-01017解决方法
实验得来的,不是随便copy的, ORA-12560TNS协议适配器错误,这个问题可定可以解决
关于oracle做恢复操作时启动数据库报错,通常是由于rman做了恢复操作导致的报错. 通过继续执行恢复指令而恢复数据库,成功启动数据库.
oracle数据库ora-01152和ora-01110的解决办法
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
Oracle 回收站功能,彻底删除表ORA-00933:SQL command not properly ended,由于删除触发器引起的。数据交换不能再建触发器。