首页 > 数据库 >Oracle问题记录

Oracle问题记录

时间:2022-10-30 10:04:49浏览次数:82  
标签:lang Exception java 记录 sql 问题 MySQL Oracle


概述

只稍微熟悉MySQL,但是不可避免会使用Oracle,此文记录Oracle使用问题。

问题

获取版本号

​SELECT version FROM PRODUCT_COMPONENT_VERSION WHERE product LIKE 'Oracle Database%';​​​ 输出:​​19.0.0.0.0​

字段最大长度

和通用SQL类似:​​select max(length(C_LONG_COMMENTS))from SYSADM.C_BATCH_TBL;​

ORA-00942:表或视图不存在

Oracle问题记录_oracle


很简单的Select查询语句,报错如上。数据库owner坚称表或视图存在。

原因:连接该数据库的用户没有查看该表或视图的权限,故而报错。需要联系数据库owner,或管理员添加权限。

另,在获得权限后,DataGrip依旧是红色警告,点击SYSADM,确实看不到表或视图,但是不影响SQL查询获取结果。

ORA-00911:无效字符

Oracle问题记录_java_02


复制到DataGrip里面,​​\r\n​​没有变成回车换行,居然报错。SQL在JDBC程序里面执行是没有问题的。

ORA-00933:SQL command not properly ended

一段简单的SQL查询语句放在DataGrip执行成功,但是在JDBC代码里面执行失败:

select C_BATCH_ID from SYSADM.C_BATCH_TBL;

Oracle问题记录_java_03


断点调试,发现原因居然是多了一个​​;​​!!!!

Oracle问题记录_sql_04

数据同步

Oracle到MySQL的数据同步。

大小写

Oracle问题记录_java_05


Oracle自动将查询的结果变成大写,同步到MySQL,表字段定义允许是下划线命名的。

时间戳BatchUpdateException: Data truncation: Incorrect datetime value

Oracle的时间戳数据支持毫秒数

Oracle问题记录_sql_06


同步到MySQL时,不管MySQL字段定义为timestamp还是varchar,同步数据都会报错:

java.lang.Exception: java.lang.Exception: java.sql.BatchUpdateException: Data truncation: Incorrect datetime value: '\\xAC\\xED\\x00\\x05sr\\x00\\x14oracle.sql.TIMESTAMP\\x91w\\x95\\xC2\\x99Ud\\x1F\\x02\\x00\\x00xr\\x00\\x10oracle.sql.Datum@x\\xF5\\x14\\xA3b(o\\x02' for column 'CREATEDTTM' at row 1
java.lang.Exception: java.lang.Exception: java.sql.BatchUpdateException: Incorrect string value: '\\xAC\\xED\\x00\\x05sr...' for column 'CREATEDTTM' at row 1

解决方法:
​​​TO_CHAR(CREATEDTTM, 'YYYY-MM-DD HH24:MI:SS') as CREATEDTTM​

clob类型序列化问题NotSerializableException: oracle.jdbc.driver.T4CConnection

Oracle问题记录_oracle_07


Oracle字段定义为CLOB,MySQL定义为varchar或text,都会报错:

2021-12-21 11:47:33,257 [http-nio-8082-exec-3] INFO  c.x.c.a.b.s.DataProviderService- execAutoWork
java.lang.Exception: java.lang.Exception: java.sql.SQLException: Invalid argument value: java.io.NotSerializableException
Caused by: java.lang.Exception: java.sql.SQLException: Invalid argument value: java.io.NotSerializableException
Caused by: java.sql.SQLException: Invalid argument value: java.io.NotSerializableException
Caused by: com.mysql.cj.exceptions.WrongArgumentException: Invalid argument value: java.io.NotSerializableException
Caused by: java.io.NotSerializableException: oracle.jdbc.driver.T4CConnection

解决方法:
​​​CAST(C_LONG_COMMENTS AS VARCHAR2(3000)) as C_LONG_COMMENTS​

参考

​Oracle to MySQL timestamp conversion in MySQL insert statement​​​​NotSerializableException while getting CLOB data from ORACLE using JDBC​


标签:lang,Exception,java,记录,sql,问题,MySQL,Oracle
From: https://blog.51cto.com/u_15851118/5807193

相关文章

  • Anaconda navigator 打不开?打开没反应问题?
    ​​Anaconda​​navigator打不开的解决方案当你想打开Anacondanavigator的时候,出现下图所示,anaconda已经在运行,但是你在任务管理器里却无法查看的,此时我们可以选择用CMD......
  • 问题IllegalStateException: The mail session is already initialized解决
    概述很【简单】的一个问题,之前从来没有遇到过;第一反应是搜索Google,没有找到解决方案。木有办法,只好去看源码;看到源码后,很容易就能解决问题。还是记录一下此文。同时,告诫一下......
  • Hive-JDBC round(num, 0)取整问题记录
    生产环境ELK记录的报错信息:ERRORc.x.c.d.b.s.i.TableWarnServiceImpl-executeTableWarnJoberror:java.lang.NumberFormatException:Forinputstring:"57.9788838612......
  • MySQL timestamp(3)问题
    背景最近在负责开发维护的一款数据平台,有一个功能是把数据从某个源头数据源(如常规的JDBC数据源,MySQL,Oracle等)推到目地数据源(还包括企微,MQ等)。一次推送数据就是一个任务,当然......
  • FastJson序列化和反序列化问题记录
    序列化与反序列化问题调用外部接口,http://100.111.55.67:9999/cmdb/v0.2.0/departments?page_size=1000,返回数据格式如下:{"code":0,"content":[{......
  • SQL Server推送数据到MQ字段丢失的生产问题排查
    背景从SQLServer推数据到MQ。SQL查询语句(省略若干查询字段):selectCallStartDt,SeqNum,CallId,Service_Id,UMIDfromCallDetailwhereCallInsertDt>=CONVERT(varchar(10),......
  • 记一次MyBatis驼峰与下划线转化问题
    最近在做一个项目优化与重构,测试同学在回归功能测试时,指出一个页面功能有Bug,并扔出日志:NPE嘛,这还不简单,根据日志记录的行数,定位到代码行数,都几乎不需要执行接口测试单步调......
  • 解决windows下环境变量太长而无法添加的问题
    (39条消息)解决windows下环境变量太大的问题(终极!!可用)_河流儿的博客-CSDN博客_环境变量太大笔者电脑上装了一大堆软件,有一大堆的环境变量需要配置,而且有些软件,笔者也喜欢......
  • TypeScript第一天学习记录
    2022年10月29日19点17分1.TypeScript是什么1.1TypeScript是什么?TypeScript(简称:TS)是JavaScript的超集(JS有的TS都有)TypeScript=Type+Javascript(在JS基础之上,为J......
  • 解决jupyter无法导入jieba,pyLDAvis,gensim包的问题(转载)
    一、无法导入jieba使用pipInstalljieba已经安装成功,piplist也可以看到jieba,但是在导入时却出错一、在官网下载jieba包官网地址:https://pypi.org/project/jieba/#file......