使用 VARCHAR2 的经典 ASP - PL/SQL 数学运算

Classic ASP - PL/SQL mathematical operations with VARCHAR2

我会尽力解释这个。

我有 varchar2 列的物化视图。

这是代码示例:

SELECT field1 * 1000
FROM my_mv 
WHERE id = 15

当我从 TOAD 执行此操作时,它工作得很好(我只对数字执行)。但是当我尝试从 ASP

做同样的事情时
sql = "SELECT field1 * 1000 FROM my_mv WHERE id = 15"
set rs = conntemp.Execute(sql)

我收到一个错误

[Microsoft][ODBC driver for Oracle][Oracle]ORA-01722: invalid number

尝试在列上执行 to_number,但还是一样

可能是我说的不够清楚。这不是 Oracle 错误(Oracle 可以毫无问题地执行此查询,因为列值可以转换为数字)。问题是当从经典 ASP 调用它时,会抛出错误。

如前所述,我也尝试过

SELECT to_number(field1) * 1000

但我仍然得到相同的结果

之所以会发生这种情况,是因为 Oracle 试图将 field1 隐式转换为整数但失败了,因为该列中包含其他非数字值。

@jason-quinones answer to Can I pass a number for varchar2 in Oracle?