本人用delphi在前台做了一个界面,后台用oracle 10,其中在后台本人创建了一个临时表,执行的代码如下,
create global temporary table XZ_ZHIXIANDATACHAXUN
(
  ID               NUMBER(1),
  ZHIXIANGCODE     VARCHAR2(20),
  ZHIXIANGNAME     VARCHAR2(300),
  QTY_PER_ASSEMBLY NUMBER,
  PART_NO          VARCHAR2(20)
)
on commit preserve rows;
ID一项原本想定义的是布尔型,但oracle表字段中没布尔型,因此只能用NUMBER(1)类型,字段里面全是0,在前台本人打算用DBGridEh来显示这个表数据,其中id一项本人是想在DBGridEh中实现像选择方框一样留给用户打勾来选择是否选这条记录。在SQL SERVER中用布尔型的字段类型则可以实现此功能,但在oracle中如何把0和1转换成所需的布尔型,让用户可以实现像选择方框一样打勾选择是否选记录。

解决方案 »

  1.   

    --转为显示为true,false的字符串,用case when
    select case when id = 0 then 'true' else 'false' end from tb
    select case when id = 1 then 'true' else 'false' end from tb
      

  2.   

    decode (a ,0,true,1 false)
      

  3.   

    SELECT DECODE(ID,0,'TRUE',1,'FALSE') ID  FROM XZ_ZHIXIANDATACHAXUN ;
      

  4.   

    oracle在pl/sql里有boolean类型,但是sql里没有这个类型的。我觉得你还是想办法在DBGridEh中处理好
      

  5.   

    从前台判断,用DBGridEh对应1,0不是一样么
      

  6.   

    这是delphi的问题,delphi可以处理,不是oracle的问题。是lz自己对delphi还不熟悉。到delphi板块去问,应该是更好的选择。
      

  7.   

    转换了好像没有什么大的用处,在oracle中字段数据类型又没有布尔型的。如果你转换了,到dephi前台去还得转换一次。