菜单

4166m金沙常用命令大全,PLUS常用命令

2020年4月30日 - 数据网络

1、
HOST键入HOST命令能够从SQL*PLUS环境切换到操作系统环境,以便执行操作系统命令,按Ctrl+D能回到SQL*PLUS状态。2、
DISCONNECT 和CONNECTDISCONNECT
命令顾名思义,就是断开当前用户与ORACLE的连接,然后,你可以键入CONNECT命令,用另外一个用户名进入。3、
SHOW用SHOW ALL命令可以查看SQL*PLUS的68个系统变量值。用SHOW
USER命令可以查看当前是哪个用户在使用SQL*PLUSshow sga:显示sga大小show
rel[4166m金沙,ease]:显示数据库版本信息show user:显示当前的用户名4、
DESCRIBEDESCRIBE或DESC命令可以查看对象的结构,这里的对象可以是表、视图,存储过程、函数、包等。比如键入DESC
DUAL,你就可以发现DUAL表只有一列。5、 SAVE filename[.ext]
[create|replace|append]ext:文件后缀,缺省为sql每当你在SQL*PLUS中执行一条或若干条SQL语句,ORACLE就会把这些刚执行过的语句存放到一个称为缓冲区的地方。每一次执行SQL语句,该语句就会存入缓冲区而把以前的覆盖。也就是说,缓冲区中存放的是刚才执行过的SQL语句。用SAVE
filename
命令可以把当前缓冲区中的内容存入文件中,其中,filename是你所取的文件名。6、
GET
filename该命令将文件中的内容取出来防至缓冲区。因此,你可用Vi或别的编辑器写好你需要执行的语句,然后用GET命令将这些语句取至缓冲区执行。7、
/斜杠/也是一个SQL*PLUS命令,它显示缓冲区中的内容并执行。8、
RUN这两个命令和/一样。9、
@该命令直接执行缓冲区中的命令,但并不将它显示在屏幕上。10、L列出缓冲区中的内容,但并不执行。11、L
n列出缓冲区中第n行的内容。12、CHANGEC/string1/string2可以将缓冲区中当前行的string1字符串替换为string2
字符串。13、A把文本添加到缓冲区中当前行的末尾。14、DEL删除缓冲区中当前行。15、I在当缓冲区中当前行的后面插入一行。16:Setset
timing on|off 打开或关闭显示sql命令执行时间set autotrace on|off
打开或关闭sql命令监控分析set echo on|off
在用start命令执行一个sql脚本时,是否显示脚本正在执行的SQL语句set
feedback on|off 显示当前sql查询或修改的行数set autocommit on|off17:spool
实现将屏幕的一切信息记录到操作系统的文件中直到spool off spo[ol]
[filename[.ext]|off|out]out:启动该功能.ext 缺省为lst或lis

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_id25; 快速编译所有视图
—-当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,
—-因为该表空间视图到其它表空间的表的连接会出现问题,可以利用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; 命令列表: 假设当前执行命令为:select
* from tab; (a)ppend 添加文本到缓冲区当前行尾 a order by tname
结果:select * from tab order by tname; (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
清空当前屏幕显示 二.Oracle sqlplus语句编辑命令
首先我们输入这样一条指令: SELECT emp_id, emp_name FROM Employees
input 命令可以接着上一条指令的后面添加语句,比如在上述语句运行后输入:
input WHERE emp_age 30 便可得到如下指令: SELECT emp_id, emp_name
FROM Employees WHERE emp_age 30 ln
命令用于指定对以输入的第n行语句进行操作,比如在上述语句运行后输入:
l1则当前选中的语句行即为 SELECT emp_id, emp_name a
命令用于直接在当前行的末尾加上字符,比如在上述语句运行后输入: a ,
emp_dept 则执行的指令变为: SELECT emp_id, emp_name, emp_dept FROM
Employees WHERE emp_age 30 c
命令用于修改当前语句中的字符,比如在上述语句运行后输入: c
/emp_name/emp_age/则执行的指令变为: SELECT emp_id, emp_age,
emp_dept FROM Employees WHERE emp_age 30 del n
命令用于删除第n行指令,比如在上述语句运行后输入: DEL 3
则执行的指令变为: SELECT emp_id, emp_age, emp_dept FROM Employees

下面举一个简单的例子,来讲解一些缓冲区编辑命令的使用方法。假设你输入下面的这些命令:SQL
SELECT name FROM tab_student2 WHERE num AT3 (SELECT num FROM
tab_top_student
);你会发现语句有错,你需要修改它。这些语句已经存至缓冲区,你不必再次输入。键入L命令,得到如下显示:SQL
SELECT name FROM tab_student2 WHERE num AT3* (SELECT num FROM
tab_top_student );注意第三行,有一个*号,表示这是当前行,键入L
2,得到如下显示:2* WHERE num AT即把第二行变为当前行。键入
C/AT/IN,得到如下显示:2* WHERE num
IN键入L查看一下缓冲区中所有内容:SQL SELECT name FROM tab_student2
WHERE num IN3* (SELECT num FROM tab_top_student
);注意,这时第二行已经修改好,第三行为当前行。好了,键入R运行这些语句即可。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图