gpt4 book ai didi

oracle - 将 Crystal Report 命令参数传递给 Oracle 函数

转载 作者:行者123 更新时间:2023-12-04 06:18:53 40 4
gpt4 key购买 nike

我有一个名为“F_SMART_DATE()”的 Oracle 10g 函数,它返回一个标量 DATE。它接受单个 VARCHAR2 参数,该参数可以是日期字符串(例如“2011-01-01”、“3/29/1966”)或“智能”日期(例如“m-1”(一个月前)、“yb-0'(当年年初))。

当我在 SQL Developer 中执行该函数时,它按预期工作:

--return 28-JUL-11
SELECT F_SMART_DATE('M-1') SMART_DATE FROM DUAL;

如果我使用相同的语法创建一个带有 Command 对象的 Crystal Report,它会按预期工作。

如果我在 Command 对象(名为“AS_OF”)中创建一个字符串参数并尝试将其传递给函数,麻烦就开始了。

命令对象的文本:
--reference Oracle function
SELECT F_SMART_DATE({?AS_OF}) SMART_DATE FROM DUAL;

如果我通过 M-1(不带单引号),我会收到一条错误消息:“无法从数据库中检索数据。详细信息:ORA-00904:“M”:无效标识符 [数据库供应商代码:904]'。

如果我通过了“M-1”(带单引号),则调用按预期工作。

不幸的是,这些语法变体也不起作用:
SELECT F_SMART_DATE(''' || {?AS_OF} || ''') SMART_DATE FROM DUAL;

SELECT F_SMART_DATE(''({?AS_OF})'') SMART_DATE FROM DUAL;

理想情况下,我可以从参数对话框中删除引号。

最佳答案

这是否有效:

SELECT F_SMART_DATE('{?AS_OF}') SMART_DATE FROM DUAL;

自从我使用 Crystal Reports 已经有一段时间了,但我记得参数的工作方式更像是宏而不是绑定(bind)变量。

关于oracle - 将 Crystal Report 命令参数传递给 Oracle 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6865783/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com