一直被Oracle中没有boolean类型困扰,网上有两种解决方案,一是用Number(1),二是用Char(1),各有所长,个人比较喜欢用Number方式解决,前几天有幸咨询到Oracle方面的顾问,他们提供的解决方案是用Char(1)实现boolean,但也有需要注意的地方,原话如下: 如果是特定boolean类型情况下,Char(1)是比Number(1)更好的选择,因为前者所用的存储空间会比后者少,但这二者在查询时存储空间的节省会提供查效率,但是要注意的是用Char(1)的时候不能让这个字段可以为空,必须有缺省,否则查询效率会降低
看个例子
java中调用procedure,传入的参数是java 的 boolean 类型
public static void moveItemDueDate(Long lItemId, Long lOperatorId,
Long lChangeId, Long lPolicyChgId, String issueFlag) throws GenericException {
DBean db = null;
CallableStatement stmt = null;
long lFlag = 0;
long lErrCode = 0;
try {
db = new DBean();
db.connect();
Connection conn = db.getConnection();
stmt = conn
.prepareCall("{call PKG_LS_PM_SUBPR