IT咨询服务Db2参数db2 10.1

set current path表示什么意思?

set current path = sysibm,sysfun,sysproc,sysibmadm
参与6

3同行回答

masalymasaly其它易诚
The CURRENT PATH special register specifies the SQL path used to resolve function names, procedure names, data type names, and global variable names in dynamic SQL statements.显示全部
The CURRENT PATH special register specifies the SQL path used to resolve function names, procedure names, data type names, and global variable names in dynamic SQL statements.收起
软件开发 · 2015-08-12
浏览760
masalymasaly其它易诚
举个例子,执行以下存储过程:db2 "call get_dbsize_info(?,?,?,0)"这个存储过程的schema是SYSPROC,可是上面为什么可以不指定schema呢,因为数据库会查看current path.e95fp7@suse1:~> db2 "values varchar(current path,80)"1           ...显示全部
举个例子,执行以下存储过程:

db2 "call get_dbsize_info(?,?,?,0)"

这个存储过程的schema是SYSPROC,可是上面为什么可以不指定schema呢,因为数据库会查看current path.

e95fp7@suse1:~> db2 "values varchar(current path,80)"

1                                                                              
--------------------------------------------------------------------------------
"SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","E95FP7"

按顺序检查schema下是否有该存储过程,SYSPROC在current path里,所以该存储过程能执行成功。但是当我们修改了current path,如:

e95fp7@suse1:~> db2 "set path=user"
DB20000I  The SQL command completed successfully.
e95fp7@suse1:~> db2 "values varchar(current path,80)"

1                                                                              
--------------------------------------------------------------------------------
"E95FP7"   

再次执行存储过程,就报错了。

e95fp7@suse1:~> db2 "call get_dbsize_info(?,?,?,0)"
SQL0440N  No authorized routine named "GET_DBSIZE_INFO" of type "PROCEDURE"
having compatible arguments was found.  SQLSTATE=42884收起
软件开发 · 2015-08-13
浏览922
ABAP4ABAP4网站架构师BBCD
回复 2# masaly      谢谢,英语能看的明白,但是不理解意思,能否解释一下。显示全部
回复 2# masaly


     谢谢,英语能看的明白,但是不理解意思,能否解释一下。收起
IT咨询服务 · 2015-08-13
浏览720

提问者

ABAP4
网站架构师BBCD

相关问题

问题状态

  • 发布时间:2015-08-12
  • 关注会员:1 人
  • 问题浏览:2683
  • 最近回答:2015-08-13
  • X社区推广