当前位置: 代码迷 >> Oracle开发 >> oracle 包 过程中 临时表归属有关问题的疑惑
  详细解决方案

oracle 包 过程中 临时表归属有关问题的疑惑

热度:490   发布时间:2016-04-24 06:37:47.0
oracle 包 过程中 临时表归属问题的疑惑
现 后台连接 数据库 用的 A用户,
而访问的是 Y用户的包里面的过程。  (A用户权限比Y大)
过程中有创建临时表的语句
 select count(1)  into v_count
      from user_tables
     where table_name = 'TEMP_SINGLEDRUGQUERY';

 if v_count < 1 then
      execute immediate '
               create global temporary table TEMP_SINGLEDRUGQUERY
              (
               FDJBH   VARCHAR2(20),
               FZK     NUMBER(20,2) default 0,
               FPH     VARCHAR2(20),
              )
              on commit preserve rows';
    else
      execute immediate 'truncate table TEMP_SINGLEDRUGQUERY';
    end if;


请问 临时表 TEMP_SINGLEDRUGQUERY 创建在哪个用户下?

过程后面  无非是数据处理后插入临时表    然后用游标返回临时表中所有数据。

但是现在  客户端无法返回数据,实际是有数据,不知道是不是没有插入临时表中。

求大神解答一下
------解决方案--------------------
写代码测试下吧,个人感觉属于用户A,不确定
------解决方案--------------------
A用户调用Y用户的存储过程
如果y的存储过程定义时使用了Authid DEFINER(如果没有定义,默认就是这个值),则执行时使用的是Y用户的权限,且创建的表在Y用户下
如果指定了Authid Current_User,则使用A用户的权限,表建在A用户下
  相关解决方案