根据AS / 400数据创建SQL视图

时间:2013-05-21 13:52:50

标签: ibm-midrange

如何针对此表创建视图?我想根据今天的日期选择。 BU400中的字段定义为Numeric 8 0.

我不明白的是,我是否必须在Iseries Navigator中重新创建表,这是Order标题和详细信息。它们已经存在于AS / 400上但从未在Iseries Navigator中使用过。创建视图后,我应该可以通过crystal Reports访问。

3 个答案:

答案 0 :(得分:1)

使用CREATE VIEW SQL语句创建视图并将数字日期转换为SQL日期。

请注意,如果表中存在任何无效日期,则在尝试选择数据时会导致错误。您可能必须在转换中包含验证逻辑。

例如:

CREATE VIEW myview AS
SELECT 
    DATE(SUBSTR(DIGITS(yyyymmdd),1,4) ||'-'||
    SUBSTR(DIGITS(yyyymmdd),4,2) ||'-'||
    SUBSTR(DIGITS(yyyymmdd),6,2)) AS mydate
FROM mytable

答案 1 :(得分:1)

在大多数情况下,SQL和SQL表可以使用DDS文件,RPG可以使用视图。您无需在IBM Navigator for i中重新创建DDS表,只需将其用于视图即可。

启动iNav。展开数据库。单击您的机器名称。在下面的数据库任务下,您将看到运行SQL脚本。双击它。它将打开一个窗口,您可以在其中输入JamesA发布的CREATE VIEW语句。完成后,使用File>保存会话。另存为...我将自己保留在IFS中,我可以轻松双击一个将其恢复,这样我就可以使用它了。我通过这种方式将所有DDL保存在IBM i上,这样我就可以轻松地重新创建我的视图,索引等。

修改 如果您不使用iNav,请考虑使用RUNSQLSTM并将脚本存储在常规源成员或流文件目录中。主要的想法是,如果您需要更改某些内容,或者可能创建类似的内容,您可以编写可以引用的脚本。

答案 2 :(得分:0)

在创建视图之前,我建议你创建perform the date conversions的功能。使用函数不仅可以简化您和其他人的语法,而且example code中使用的DETERMINISTIC关键字将缓存结果,从而提高计算性能。