0

伙计们,这是我的观点:

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;

当我执行 SELECT * FROM SISTEMA.VWTELA 时,它在 PL/SQL Developer 中运行良好,但是当我从我的 VB.NET 应用程序启动查询时,它会抛出一个非常烦人的错误 ORA-01722。

有任何想法吗?应用程序代码可以完美地与任何查询一起工作,因此它不是应用程序代码错误,而是来自 ODP.NET 的一些“超酷功能”。

已经尝试过 to_number、to_whatever 并且总是会发生相同的错误。

4

1 回答 1

1

代替

CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN 
  to_char('Yes')
  ELSE
    to_char('No')
    END as Ativo,

to_char(CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN 
  'Yes'
  ELSE
    'No'
    END) as Ativo,

ODP.NET 现在可以识别这个视图。

于 2010-05-07T04:47:34.537 回答