如何在创建函数中 跨表空间查询1.创建函数的表空间在FXZH的表空间
2.游标中需要查询的表在strongwater的表空间中
3.在 fxzh的表空间中直接执行 sql :select * from strongwater.st_pptn_r是可以得到查询结果的,但是在函数中是无法读取到strongwater下的表的
如图:

解决方案 »

  1.   

    你这不是表空间的问题吧……这是PL/SQL代码调用者权限和定义者权限的问题,试着在as关键字前加上AUTHID CURRENT_USER。
      

  2.   

    fxzh 和 strongwater 分别是两个表空间的用户
      

  3.   

    其实如果权限控制比较完善,那么其实应该做的是让p01_data_t和st_pptn_r两张表所属的用户给你的函数所属用户显示授予表级权限:
    grant select on p01_data
    和你表空间没关系,就是权限的问题。
      

  4.   

    这个不是跨表空间,而是跨用户(schema)如果要过程或函数中查询其他用户(schema)的数据, 要显式的授权;grant select on tname to user1; 
      

  5.   

    跨用户权限问题,你在as关键字前加上AUTHID CURRENT_USER即可。
      

  6.   

    跨用户,用grant试试