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

Crash119 2014-08-25 10:06:52
加精
现 后台连接 数据库 用的 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 创建在哪个用户下?

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

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

求大神解答一下
...全文
926 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
皮特尔 2014-08-28
  • 打赏
  • 举报
回复
学习了,果然还是版主厉害。
云满笔记 2014-08-26
  • 打赏
  • 举报
回复
呀 这应该是DBA的活 留给DBA了
laoer_2002 2014-08-26
  • 打赏
  • 举报
回复
引用 2 楼 wildwave 的回复:
A用户调用Y用户的存储过程 如果y的存储过程定义时使用了Authid DEFINER(如果没有定义,默认就是这个值),则执行时使用的是Y用户的权限,且创建的表在Y用户下 如果指定了Authid Current_User,则使用A用户的权限,表建在A用户下
学习了
Crash119 2014-08-25
  • 打赏
  • 举报
回复
引用 2 楼 wildwave 的回复:
A用户调用Y用户的存储过程 如果y的存储过程定义时使用了Authid DEFINER(如果没有定义,默认就是这个值),则执行时使用的是Y用户的权限,且创建的表在Y用户下 如果指定了Authid Current_User,则使用A用户的权限,表建在A用户下
谢谢,经过测试,是Y用户。 此问题已经解决。
bw555 2014-08-25
  • 打赏
  • 举报
回复
引用 2 楼 wildwave 的回复:
A用户调用Y用户的存储过程 如果y的存储过程定义时使用了Authid DEFINER(如果没有定义,默认就是这个值),则执行时使用的是Y用户的权限,且创建的表在Y用户下 如果指定了Authid Current_User,则使用A用户的权限,表建在A用户下
学习……
小灰狼W 2014-08-25
  • 打赏
  • 举报
回复
A用户调用Y用户的存储过程 如果y的存储过程定义时使用了Authid DEFINER(如果没有定义,默认就是这个值),则执行时使用的是Y用户的权限,且创建的表在Y用户下 如果指定了Authid Current_User,则使用A用户的权限,表建在A用户下
bw555 2014-08-25
  • 打赏
  • 举报
回复
写代码测试下吧,个人感觉属于用户A,不确定

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧