sql限制总结

数据库对于sql的长度是有一些限制的,我们在编写时一定要注意:

1.IN 子句中的LIST个数最长为1000

2.如果是拼接sql,注意sql的大小,虽然没有严格的限制,优势会报ORA-01704: string literal too long的错误

3.oracle绑定变量的个数有限制,为65535,当使用批量插入时一定要注意不要超过这个限制;

4.REGEXP_REPLACE  参数字符长度限制4000;

 

数据库连接的限制:

1.不论是oracle数据库还是mysql数据库都可以配置连接最大空闲时间(空闲时间长说明连接长时间没有被使用执行sql命令),超过这个时间连接将会被断开,断开后应用端的数据库连接池是不知道的,程序仍能够通过getconnection()从连接池中获取到connection对象,但是在执行statement阶段会报closed connection 的错误,为了防止这个错误,需要在连接池中配置连接最大空闲时间,这个空闲时间应该不大于数据库配置的最大空余时间;

2.有的连接池为了防止连接泄露,配置了连接的最大使用时间,连接使用超过这个时间将会被强制回收到连接池,statement将会被强制断开,程序将会报java.sql.SQLRecoverableException:closed statement 错误;例如阿里的连接 池com.alibaba.druid.pool.DruidDataSource就有removeAbandonedTimeout这个配置;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值