ORA-03115: 不支持的网络数据类型或表示法
出现ORA-03115: unsupported network datatype or representation错误的原因,网上有几种说法:
-
Oracle客户端的版本和服务器的版本不一致,通常是客户端版本太老
-
在Oracle8使用了Timestamp类型,Oracle 8 中还不存在 Timestamp 这样的数据类型
而我要说的是另一个原因:
当table User的age字段类型为number,userCode字段类型为varchar2时,使用select * from User where age = ‘23’或者select * from User where userCode=213478 这种SQL语句,可能报这样的错误。也许这个语句在某些客户端不会出错,而且原来不会错而经过了Oracle数据库分析之后却又出错了。
所以,写SQL还是要严谨些,乖乖的按照SQL标准编写;另外,值得提的是,如果在Java里用PrepareStatement绑定变量可以避免这个问题。