现 后台连接 数据库 用的 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用户下