Vb.net Oracle XE+ODP.NET恼人的视图错误
各位,以下是我的观点:Vb.net Oracle XE+ODP.NET恼人的视图错误,vb.net,oracle,odp.net,ora-01722,Vb.net,Oracle,Odp.net,Ora 01722,各位,以下是我的观点: CREATE OR REPLACE VIEW SISTEMA.VWTELA AS SELECT TEL_DLTELA AS Tela, TEL_DLDESCRICAO As Descricao, TEL_DLTABELA As Tabela, CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN to_char('Yes') ELSE to_char('No') END as Ativo, TEL_ID
CREATE OR REPLACE VIEW SISTEMA.VWTELA AS
SELECT
TEL_DLTELA AS Tela,
TEL_DLDESCRICAO As Descricao,
TEL_DLTABELA As Tabela,
CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN
to_char('Yes')
ELSE
to_char('No')
END as Ativo,
TEL_IDTELA AS IDTEL
FROM SISTEMA.TEL_TELA;
当我从SISTEMA.VWTELA执行SELECT*时,它在PL/SQL Developer中运行良好,但当我从VB.NET应用程序启动查询时,它抛出了一个非常恼人的错误ORA-01722
有什么想法吗?应用程序代码可以完美地处理任何查询,因此它不是应用程序代码错误,而是来自ODP.NET的一些超级酷的特性
已经尝试过编号,无论发生什么,都会发生相同的错误。替换
CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN
to_char('Yes')
ELSE
to_char('No')
END as Ativo,
到
ODP.NET现在可以识别此视图。“是”和“否”已经是字符串,因此不需要进行TO_CHAR转换。在这种情况下,当客户不处理异常时,这是很烦人的,但有时他们的期望值太高,不适合人类犯错。
to_char(CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN
'Yes'
ELSE
'No'
END) as Ativo,