问题提出:
1、用户需要对数据库用户下的每一张表都执行一个相同的sql操作,这时,一遍、一遍的键入sql语句是很麻烦的
实现方法:
sql> set heading off --禁止输出列标题
sql> set feedback off --禁止显示最后一行的计数反馈信息
列出当前用户下所有同义词的定义,可用来测试同义词的真实存在性
select 'desc 'tname from tab where tabtype='synonym';
查询当前用户下所有表的记录数
select 'select '''tname''',count(*) from 'tname';' from tab where tabtype='table';
把所有符合条件的表的select权限授予为public
select 'grant select on 'table_name' to public;' from user_tables where 《条件》;
删除用户下各种对象
select 'drop 'tabtype' 'tname from tab;
删除符合条件用户
select 'drop user 'username' cascade;' from all_users where user_id>25;
快速编译所有视图
----当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,
----因为该表空间视图到其它表空间的表的连接会出现问题,可以利用pl/sql的语言特性,快速编译。
sql> spool on.sql
sql> select'alter view 'tname' compile;' from tab;
sql> spool off
然后执行on.sql即可。
sql> @on.sql
当然,授权和创建同义词也可以快速进行,如:
sql> select 'grant select on 'tname' to 用户名;' from tab;
sql> select 'create synonym 'tname' for 用户名.'tname';' from tab;
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器