我想看到如下定义的函数的代码。这个功能
-lives在名为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
答案 0 :(得分:1)
没有“代码”,只有函数定义。您可以使用db2look
或通过查询系统目录视图SYSCAT.ROUTINES和SYSCAT.ROUTINEPARMS来自行生成定义。
答案 1 :(得分:1)
DB2不会存储外部例程(C或Java)的代码。 DB2将在调用函数或SP时调用外部二进制文件。如果DB无法找到二进制文件,则会抛出错误
但是,例程定义和被调用二进制文件之间的映射在目录中,DB2将存储标头以及哪个二进制文件必须调用。
当您添加例程时,DB2甚至不检查该例程是否具有良好的格式或可调用的参数。这将在执行时完成。