【问题标题】:ms access query to oracle via odbc通过 odbc 访问 oracle 的 ms 访问查询
【发布时间】:2013-07-17 10:38:08
【问题描述】:

我想通过 ms 访问执行 oracle 函数: 这个查询很完美:

Select * from table(rpt_0257_ArtEtk_fn('1','1')); 

这个也是:

Select * from table(rpt_0257_ArtEtk_fn('Forms!Form1!Text12', '1'));

但是这个

Select * from table(rpt_0257_ArtEtk_fn('Forms!Form1!Text12', 'Forms!Form1!Text12'));

还有这个:

Select * from table(rpt_0257_ArtEtk_fn('1', 'Forms!Form1!Text12'));

结果为“ORA-01722:无效号码”

我不明白问题出在哪里。

【问题讨论】:

  • 能否提供rpt_0257_ArtEtk_fn的代码?我假设 'Forms!Form1!Text12' 作为文本值而不是数字传递。
  • 不,我无权访问此函数的源代码。
  • rpt_0257_ArtEtk_fn 的第二个参数是如何声明的?我猜它是NUMBER,但在失败的调用中,您传递的字符串无法转换为NUMBER
  • 是的,你是莱特,第一个参数是字符串,第二个是数字。
  • 我假设这是一个 [PASS THROUGH] 查询。对吗?

标签: oracle ms-access plsql


【解决方案1】:

尝试使用 Val 函数,例如:

Select * from table(rpt_0257_ArtEtk_fn('Forms!Form1!Text12', 'Val(Forms!Form1!Text12)'));

或 to_number:

Select * from table(rpt_0257_ArtEtk_fn('Forms!Form1!Text12', TO_NUMBER('Forms!Form1!Text12')));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    相关资源
    最近更新 更多