0

我想查看如下定义的函数的代码。此函数存在于一个名为的模式中MYSCHEMA ,使用已安装的共享库。

我尝试使用以下内容,但它不起作用。

  select r.routinename as FunctionName, r.text as FunctionBody from 
  syscat.routines r where r.origin in ('U','R') and ROUTINESCHEMA='TRADE' 
  AND ROUTINETYPE ='F'

我怎样才能做到这一点?

   create or replace function MyFunction(varchar(60))
          returns  table(
          ..fields..
           )
          external name 'mySharedLib.so!function'
          language c
          parameter style sql
4

2 回答 2

1

DB2 不会存储外部例程(C 或 Java)的代码。当调用函数或 SP 时,DB2 只会调用外部二进制文件。如果数据库找不到二进制文件,它将抛出错误

但是,例程定义和调用的二进制文件之间的映射位于目录中,DB2 将在其中存储标头以及必须调用的二进制文件。

添加例程时,DB2 甚至不会检查例程是否具有良好的格式或可调用参数。这将在执行时完成。

于 2013-07-01T08:05:57.203 回答
1

没有“代码”,只有函数定义。您可以db2look通过查询系统目录视图 SYSCAT.ROUTINES 和 SYSCAT.ROUTINEPARMS 自己使用或生成定义。

于 2013-06-28T18:40:50.770 回答