我有一个EXT JS页面,它发送带有一些值的表单。这些值都以字符串形式发送,一些以boolean方式发送。它调用一个PL / SQL过程,其中params都是varchar。由于某些原因,在提交表单时,即使某些值作为布尔值发送,过程也不能将它们作为布尔值接收。从过程中收到的所有值都是varchar;并且必须以其他方式崩溃。
所以我从表单向程序发送一个布尔值。当它到达程序时,它现在是一个varchar。如何将其转换回布尔值?
任何帮助都表示赞赏,我觉得我在这里做错了什么。我不明白它为什么会收到varchar。
答案 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','是',...