数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SQLPlus 使用技巧

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

[推荐]SQLPlus 使用技巧

          SQL*Plus系统环境变量有哪些?如何修改?

                  [ 天堂之水  2002年9月18日,阅读人数21人 ]



软件环境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:\ORANT

实现方法:
      show和set命令是两条用于维护SQL*Plus系统变量的命令

      SQL> show all --查看所有68个系统变量值

      SQL> show user --显示当前连接用户

      SQL> show error                --显示错误

      SQL> set heading off --禁止输出列标题,默认值为ON

      SQL> set feedback off --禁止显示最后一行的计数反馈信息,默认值为"对6个或更多的记录,回送ON"

      SQL> set timing on --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能

      SQL> set sqlprompt "SQL> " --设置默认提示符,默认值就是"SQL> "

      SQL> set linesize 1000 --设置屏幕显示行宽,默认100

      SQL> set autocommit ON --设置是否自动提交,默认为OFF

      SQL> set pause on --默认为OFF,设置暂停,会使屏幕显示停止,等待按下ENTER键,再显示下一页

      SQL> set arraysize 1 --默认为15

      SQL> set long 1000 --默认为80

      说明:
      long值默认为80,设置1000是为了显示更多的内容,因为很多数据字典视图中用到了long数据类型,如:

SQL> desc user_views
列名                          可空值否   类型
------------------------------- -------- ----
VIEW_NAME                       NOT NULL VARCHAR2(30)
TEXT_LENGTH                              NUMBER
TEXT                                     LONG

SQL> define a = '''20000101 12:01:01'''         --定义局部变量,如果想用一个类似在各种显示中所包括的回车那样的常量,
                                               --可以用define命令来设置
SQL> select &a from dual;
原值    1: select &a from dual
新值    1: select '20000101 12:01:01' from dual

'2000010112:01:01
-----------------
20000101 12:01:01

问题提出:
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;

SQL*PLUS常用命令列表

[ 天堂之水  2002年9月18日,阅读人数36人 ]




软件环境:
1、Windows 98 第二版
2、Oracle数据库版本为:Personal Oracle7 Release 7.3.4.0.0
3、Oracle安装路径为:C:\ORAWIN95

命令列表:
假设当前执行命令为:select * from tab;

(a)ppend     添加文本到缓冲区当前行尾    a  order by tname 结果:select * from tab order by tname;
                                      (注:a后面跟2个空格)
(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname     结果:select tname from tab;
(c)hange/text  从当前行删除文本        c/tab       结果:select tname from ;
del       删除当前行
del n      删除第n行
(i)nput 文本   在当前行之后添加一行
(l)ist      显示缓冲区中所有行
(l)ist n     显示缓冲区中第 n 行
(l)ist m n    显示缓冲区中 m 到 n 行
run       执行当前缓冲区的命令
/        执行当前缓冲区的命令
r        执行当前缓冲区的命令
@文件名     运行调入内存的sql文件,如:

SQL> edit s<回车>
如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,
在其中输入“select * from tab;”,存盘退出。

SQL> @s<回车>
系统会自动查询当前用户下的所有表、视图、同义词。

@@文件名     在.sql文件中调用令一个.sql文件时使用

save 文件名   将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql
get 文件名    调入存盘的sql文件
start 文件名   运行调入内存的sql文件

spool 文件名   把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,默认文件扩展名为.lst
spool      显示当前的“假脱机”状态
spool off    停止输出

例:
SQL> spool a
SQL> spool
正假脱机到 A.LST
SQL> spool off
SQL> spool
当前无假脱机


exit       退出SQL*PLUS
desc 表名    显示表的结构
show user    显示当前连接用户
show error    显示错误
show all     显示所有68个系统变量值
edit       打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑
edit 文件名   把当前目录中指定的.sql文件调入编辑器进行编辑

clear screen   清空当前屏幕显示




相关文章

相关软件