oracle 布尔转换java布尔_如何构造布尔值并使用java / oracle存储过程访问它们

1)我在java端使用这个setBoolean()发送了什么,Oracle得到了什么?

来自Java docs:

将指定参数设置为给定的Java布尔值.驱动程序在将其发送到数据库时将其转换为SQL BIT值.

因此,布尔值将转换为BIT值.

2)它之前是什么样的布尔类型,为什么这与setBoolean()不兼容?“

如上所述,它将其转换为BIT值,因此它期待同样的事情.以前,oracle也存在一个布尔变量.但正如你所说,在尝试了几件事之后,我只是简单地将Oracle中的类型从Boolean更改为Int,将java代码保留为“setBoolean(3,true)”,一切正常.原因是,oracle没有布尔值变量了.为什么?阅读this以深入讨论该问题.

3)在提高速度时,我应该使用Oracle类型int和java setBoolean(),还是其他组合,如Oracle Varchar和setString()?

我会说varchar和setString().原因,setString()方法converts将它变成varchar.因此,与setBoolean()和int相比,您节省了时间,从Boolean到BIT再到int.

编辑

只需从上述链接之一复制粘贴的内容,以便更清楚地澄清问题:

你好汤姆,

我有一个关于布尔数据类型的问题.

以下是我们的客户编写的SP,我们需要将其与我们的应用程序集成.

PROCEDURE sp_xxxx_map (

ic_opt_number IN VARCHAR2,

in_cast_number IN NUMBER,

in_tyre_amount IN NUMBER,

ob_is_valid OUT BOOLEAN,

ob_is_obgr_obgt_valid OUT BOOLEAN,

—————少数参数….

在集成上面的内容时,除了boolean OUT参数外,一切都很好.

我想(如果我错了,请纠正我)java(JDBC类)中没有SQL数据类型来捕获

“ob_is_valid”,“ob_is_obgr_obgt_valid”参数.

怎么办这个问题呢.

一个想法是:

我可以编写另一个SP(比如SP1),它将调用上面的SP并将布尔类型转换为

CHAR为’Y’表示true,’N’表示false.

最后我让应用程序调用新创建的SP1.

关注2003年2月5日 – 上午9点中部时区:

准备并执行:

declare

b1 boolean;

b2 boolean;

n1 number := 0;

n2 number := 0;

begin

sp_xxxx_map( ?, ?, ?, b1, b2 );

if (b1) then n1 := 1; end if;

if (b2) then n2 := 1; end if;

? := n1;

? := n2;

end;

来自jdbc应用程序.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值