PL / SQL将字符串转换为布尔值

时间:2012-06-19 09:04:38

标签: string extjs plsql boolean

我有一个EXT JS页面,它发送带有一些值的表单。这些值都以字符串形式发送,一些以boolean方式发送。它调用一个PL / SQL过程,其中params都是varchar。由于某些原因,在提交表单时,即使某些值作为布尔值发送,过程也不能将它们作为布尔值接收。从过程中收到的所有值都是varchar;并且必须以其他方式崩溃。

所以我从表单向程序发送一个布尔值。当它到达程序时,它现在是一个varchar。如何将其转换回布尔值?

任何帮助都表示赞赏,我觉得我在这里做错了什么。我不明白它为什么会收到varchar。

1 个答案:

答案 0 :(得分:3)

你是对的,没有Oracle内置的字符串到布尔函数,但你可以自己轻松创建一个:

create or replace function to_boolean
  ( p_string varchar2
  ) return boolean
is
begin
  return
    case upper(p_string) 
      when 'TRUE' then true
      when 'FALSE' then false
      else null
      end;
end;

(" else null"是多余的,但我把它放在那里提醒你,如果upper(p_string)不是' TRUE'或者' FALSE&#39 ;然后函数将返回null)。

您当然可以增强将其他字符串值视为真或假的功能,例如' T','是',...