如何用SQL生成SQL批处理文件的方法
2008-01-05 09:58:50 来源:WEB开发网核心提示:软件环境:1、Windows NT4.0+Oracle 8.0.42、ORACLE安装路径为:C:\ORANT问题提出:1、用户需要对数据库用户下的每一张表都执行一个相同的SQL操作,这时,如何用SQL生成SQL批处理文件的方法,一遍、一遍的键入SQL语句是很麻烦的实现方法:SQL> set heading of
软件环境:
1、Windows NT4.0+Oracle 8.0.4
2、ORACLE安装路径为:C:\ORANT
问题提出:
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;
- ››如何检查oracle的归档空间是否满了
- ››如何在浏览器中打开PDF文件并实现预览的思路与代码...
- ››如何改Win7系统我的文档保存位置
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››如何让ios app支持32位和64位
- ››如何删除Windows 8系统未知的账户
- ››如何提高win7系统的响应速度?
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››如何避免iPhone应用中内存泄露
- ››如何转移Win 7系统C盘的用户文件夹
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
更多精彩
赞助商链接