需要关于DB2“call @ some.thing(?,?)”语法的帮助

时间:2012-07-23 10:31:44

标签: sql stored-procedures db2

我刚开始一份新工作。 我需要同时了解很多有趣的事情。 现在,对于我来说,如何从一些从程序中调用的DB2对象中获取一些信息对我很有帮助

call @some.thing(?,?)

我试过了:

select text from some.routines where routinename = 'thing' 
select PROCNAME,TEXT from SYSIBM.SYSPROCEDURES 
select text from syscat.routines where routinename = 'thing'

但每次我得到类似的东西:

some.ROUTINES IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704,
DRIVER=4.8.86 
SYSCAT.ROUTINES IS AN UNDEFINED NAME. SQLCODE=-204,
SQLSTATE=42704, DRIVER=4.8.86 
SYSIBM.SYSPROCEDURES IS AN UNDEFINED
NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=4.8.86

虽然在WID的数据库开发视图中成功执行了call @some.thing(?,?),但在创建JDBC outbound import时找不到合适的对象。

事先谢谢。

1 个答案:

答案 0 :(得分:0)

您在哪个平台上运行DB2?

如果您使用的是Linux / Unix / Windows(LUW),那么您应该使用SYSCAT.SYSROUTINES(尽管您已经提到过这个不起作用,所以我猜这不是它。)< / p>

对于Mainframe DB2,您正在寻找SYSIBM.SYSROUTINES

如果你在iSeries上,你可能想要SYSROUTINES(虽然我不熟悉iSeries)。