用一个用户删除另一个用户的表的实现 高手进来指点

lovelylulu 2004-12-28 03:46:23
conn sys/change_on_install@lujiaqi as sysdba
create or replace procedure tes(tab_name in varchar) as cou int;
v_sql varchar(100);
begin
select count(*) into cou from all_tables where table_name=upper(tab_name);
if cou=1 then
v_sql:='drop table '||tab_name;
execute immediate v_sql;
end if;
end;
/
exec tes('test')

test是system表空间下的 现在我要删除它 而登入名用的是sys 如何实现?
...全文
94 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GerryYang 2004-12-29
  • 打赏
  • 举报
回复
drop table username.tablename
kieululu 2004-12-29
  • 打赏
  • 举报
回复
试试
zealot_zk 2004-12-29
  • 打赏
  • 举报
回复
在执行之前一定要保证用户拥有相关的权限,要由表的所有者进行授权,或者拥有drop any table权限
liwenchao 2004-12-28
  • 打赏
  • 举报
回复
修改v_sql:='drop table system.'||tab_name;
在执行exec tes('test')。

ineedtostudy 2004-12-28
  • 打赏
  • 举报
回复
drop table system.test
doulikeme 2004-12-28
  • 打赏
  • 举报
回复
在表名前加上方案名, 例如: drop table sys.testtab;

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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