壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4110|回复: 4

看看这个sql为何执行错误!

[复制链接]
发表于 2005/5/6 13:16:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
SQL> execute immediate 'alter session set current_schema = inv';
BEGIN immediate 'alter session set current_schema = inv'; END;
                *
ERROR at line 1:
ORA-06550: line 1, column 17:
PLS-00103: Encountered the symbol "alter session set current_schema = inv" when
expecting one of the following:
:= . ( @ % ;
The symbol ":=" was substituted for "alter session set current_schema = inv" to
continue.

 楼主| 发表于 2005/5/6 13:23:20 | 显示全部楼层
上面的只是其中的一句话整个的sql如下:declare username varchar2(100) default 'SYS';
begin
for tablelist in (select owner,table_name from dba_tables
                  where owner not in ('SYS','SYSTEM') order by 1 )
loop
if tablelist.owner<> username then
execute immediate 'alter session set current_schema = '||tablelist.owner||'';
username = tablelist.owner;
end if;
execute immediate 'grant all on '||tablelist.owner||'.'||tablelist.table_name ||' to apps with grant option';
end loop;
end;但是执行的时候报错:username = tablelist.owner;
         *
ERROR at line 8:
ORA-06550: line 8, column 10:
PLS-00103: Encountered the symbol "=" when expecting one of the following:
:= . ( @ % ;
ORA-06550: line 9, column 1:
PLS-00103: Encountered the symbol "END"
 楼主| 发表于 2005/5/6 13:34:57 | 显示全部楼层
上面的错误解决了,应该是username := tablelist.owner;但是出现了其他的错误SVRMGR> connect internal
Connected.
SVRMGR> @b.sql
ORA-01929: no privileges to GRANT
ORA-06512: at line 10
SVRMGR>
 楼主| 发表于 2005/5/6 13:38:34 | 显示全部楼层
我的目的是吧所与owner得table的所有权付给apps,并授权grant权限,但是就是不知道执行sqlplus得时候应该用那个用户执行?apps我也试过了,提示不能授权给自己
 楼主| 发表于 2005/5/10 11:08:15 | 显示全部楼层
解决方法如下:declare
sqltext varchar2(400);
c integer;
begin
for userlist in (select user_id,username from all_users where username not in ('SYS','SYSTEM','APPLSYS','APPS'))
loop
for tablelist in (select owner,table_name from dba_tables where owner = userlist.username and table_name not like '%IOT_OVER%')
loop
sqltext := 'grant all on '||tablelist.owner||'.'||tablelist.table_name ||' to apps with grant option';
c := sys.dbms_sys_sql.open_cursor();
sys.dbms_sys_sql.parse_as_user( c,sqltext,dbms_sql.native,userlist.user_id);
sys.dbms_sys_sql.close_cursor(c);
end loop;
end loop;
end;
/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 07:49 , Processed in 0.012706 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表