2014-09-19 46 views
2

我使用连接到Oracle数据库的报告生成器3.0。 我试图在查询中传递一个日期参数没有成功,我不知道确切的语法。 我已经试过:如何将日期参数从报告生成器查询设计器传递到Oracle数据库

SELECT * 
FROM igeneral.GCL_CLAIMS 
WHERE CREATED_BY IN (:CREATED_BY) AND CLAIM_YEAR IN(:UW_YEAR) 
    AND (Trunc(LOSS_DATE,'mm/dd/yyyy') BETWEEN to_char(':From', 'mm/dd/yyyy') 
    AND to_char('To', 'mm/dd/yyyy')) 

我得到这个错误:ORA-01036: illegal variable name/number

还我已经试过这样:

SELECT * 
FROM igeneral.GCL_CLAIMS 
WHERE CREATED_BY IN (:CREATED_BY) AND CLAIM_YEAR IN(:UW_YEAR) 
    AND (LOSS_DATE BETWEEN ':From' AND ':To') 

我得到这个错误:ORA-01036: illegal variable name/number

感谢

+0

':FROM'和':To'对我来说看起来很可疑。我相信你试图让引擎将文本':FROM'转换为mm/dd/yyyy格式。我相信你不想要抽搐;你不是说to_date而是to_char? :FROM和:To可能已经将字符串正确传递并需要转换为日期才能正确地使用它们。 – xQbert 2014-09-19 13:21:55

+0

你的权利我的意思是to_date,我试图to_char,因为我发现一个帖子在线使用to_char而不是to_date,但没有工作。 From和To是参数;你能给我正确的语法来使用吗? – 2014-09-19 13:45:18

+1

应该只需要移除抽动变量/参数不应该包在抽动中。数据类型是已知的,因为它必须作为参数传递,所以你不需要围绕它们进行抽象。 – xQbert 2014-09-19 13:56:54

回答

0

解决方案取决于来自和参数的。

如果您的参数是DATE数据类型,请使用to_char将日期转换为您要显示的所需格式的文字。否则,如果参数为VARCHAR2数据类型,请使用to_date将日期文字转换为日期以进行比较。

就你而言,LOSS_DATE列很可能是DATE,并且你的参数是文字,所以使用`TO_DATE对参数使用适当的格式掩码。

LOSS_DATE BETWEEN to_date(':From', 'mm/dd/yyyy') AND to_date('To', 'mm/dd/yyyy')

+0

我试着按你的建议,数据集保存没有错误,但是当运行报告时出现错误“ORA-01036:非法变量名称/编号” – 2014-09-23 12:35:37

+0

如果数据完美地插入到数据库中,这意味着生成报告时数据类型不匹配。 – 2014-09-23 13:19:21

+0

我如何跟踪它,我试图将所有字段转换为使用To_Date函数的日期,但没有工作 – 2014-09-23 13:48:35

0

错误,ORA-01036:非法变量名/ numberbeing,通常发生在Oracle报告时在对象导航识别的参数不与在查询中引用绑定变量相对应。

您的:From:To绑定变量是否出现在对象导航器的“用户参数”中? 我注意到你的代码引用的:To绑定变量前面没有冒号。

正确的示例

这里是一个播种甲骨文报告的“用户参数”的屏幕截图....并且具体地:p_as_of_date绑定变量。注意带有图片的属性检查器,一个标识数据类型和输入掩码。您是否以这种方式设置了参数:From:To?特别是,如果您的参数被用作日期,我会确保在属性检查器中将数据类型设置为日期。 enter image description here

这里是一个片段:p_as_of_date绑定变量的“种子”甲骨文报告,在这里它是在一个查询中引用:

where  TRUNC(ps.gl_date) <= :p_as_of_date 

注意,没有施法需要。 有了您的查询,我会采取这种方法(同样,无铸造):

AND TRUNC(LOSS_DATE,'mm/dd/yyyy') BETWEEN :From AND :To 

因此,我只想确保在“用户参数”中引用的绑定变量对应与查询中的绑定变量。

+1

我试过以上,但我点击确定保存后,弹出窗口“定义查询参数”列出所有我的参数与参数名称和参数值列,我点击确定后会发生另一个错误“ORA-01745:无效主机/绑定变量名”。 另请注意,在查询设计中,我没有与对象导航器屏幕相同的表和视图的可视界面,我只能写查询;有没有办法显示它,因为它会促进大量的工作 – 2014-09-23 12:38:48

相关问题