如果表不存在,如何继续执行脚本。我使用子集函数将主数据表分解为几个表。然后我正在执行一些操作并尝试使用更新功能将它们合并回来。但有时我只有一张桌子,有时有两张桌子。如果第二个表不存在,我如何告诉脚本继续。
// 更新数据表
数据表(“材料A”)<<更新(
With(数据表(“材料B”)),
匹配列( :SN = :SN )
我如何告诉脚本,如果材料 A 或材料 B 表不存在,仍然继续执行。
基础数据分析和建模回复:如果表不存在,如何继续执行脚本。您可以使用 Try 语句,也可以在更新之前检查这些表是否存在。我个人会执行检查,而不是依赖 Try。此外,通常最好使用变量来存储对表的引用,而不是依赖表名。
编辑:使用Try看起来像这样( https://www.jmp.com/support/help/en/17.2/#page/jmp/throw-and-catch-exceptions.shtml )
Try(
Data Table("Big Class") << Update(
With(Data Table("Big Class Families")),
Match Columns(:name = :name)
)
);
并检查表名
tablelist = Get Data Table List() << get name;
// Only join if both are found
If(Contains(tablelist, "Big Class") & Contains(tablelist, "Big Class Families"),
Data Table("Big Class") << Update(
With(Data Table("Big Class Families")),
Match Columns(:name = :name)
)
);
回复:如果表不存在,如何继续执行脚本。感谢您提供解决方案和建议,使用变量来存储对表的引用,而不是依赖表名。
回复:如果表不存在,如何继续执行脚本。如果您使用变量那么您也可以使用 Is Empty(dtref)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Try(dt2 = Open("$SAMPLE_DATA/Big Class Families"));
Show(Is Empty(dt), Is Empty(dt2));
但您可能必须使用其他方法,具体取决于您获取表格的位置(如果其他方法都不起作用,您可以想办法使用 Try() )。