ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sql plus命令使用总结

sql plus命令使用总结

原创 Linux操作系统 作者:tthero00boo 时间:2013-11-06 09:09:49 0 删除 编辑

/* 查询当前sqlplus的server process的ospid */

SQL> select pid,spid,p.pname,p.program from v$process p,v$session s where p.addr=s.paddr and s.sid=userenv('sid');

       PID SPID    PNAME      PROGRAM
---------- ------- ---------- -----------------------------------
        30 2697               oracle@localhost.myrh6 (TNS V1-V3)


/* 不显露sys密码的登陆方式
C: > sqlplus
Enter user-name:sys
Enter password:password@myorcl11 as sysdba     --以sys用户登陆的话 必须要加上 as sysdba 子句 */

define _editor=vim

--临时退出
host,!,$
--执行os command
ho cp [!cp]


/*sql plus命令,执行后,不保存在sql buffer的内存区域中,用来对输出的结果进行格式化显示*/

--1. 执行脚本
SQL>start file_name
SQL>@ file_name
--2. 对当前的输入进行编辑
SQL>edit
--3. 重新运行上一次运行的sql语句
SQL>/
--4. 将显示的内容输出到指定文件,在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句
SQL> SPOOL file_name
--5. 关闭spool输出,只有关闭spool输出,才会在输出文件中看到输出的内容
SQL> SPOOL OFF
--6.显示一个表的结构
SQL> desc table_name
--7. 将一个文件中的sql语句导入到sql buffer中
GET file_name
--8. 将sql buffer中的语句保存到一个文件中
SAVE /home/oracle/t.sql
--9. 改提示符
SQL>set sqlprompt 'session1>'


/* col命令 */
-- 1. 改变缺省的列标题
COLUMN column_name HEADING column_heading
-- 2. 改变列的显示长度
col ename format a40
-- 3. 设置列标题的对齐方式
col dname jus[tify] right
-- 4. 不让一个列显示在屏幕上
col dname nopri[nt]
-- 5. 格式化NUMBER类型列的显示
col sal format $999.990
-- 6. 显示列的当前的显示属性值
COLUMN column_name
-- 7. 将所有列的显示属性设为缺省值
CLEAR COLUMNS

 /* set命令 */
-- 1. 在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SET ECHO {ON|OFF}
-- 2. 是否显示当前sql语句查询或修改的行数
SET FEED[BACK] {6|n|ON|OFF}
-- 3. 是否显示列标题
SET HEA[DING] {ON|OFF}
-- 4. 设置一行可以容纳的字符数
SET LIN[ESIZE] {80|n}
-- 5. 设置一页有多少行数
SET PAGES[IZE] {24|n}
-- 6. 是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。
SET SERVEROUT[PUT] {ON|OFF}
-- 7. 当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句.on另起一行,off直接截掉
SET WRA[P] {ON|OFF}
-- 8. 是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。
SET TERM[OUT] {ON|OFF}
-- 9. 将SPOOL输出中每行后面多余的空格去掉
SET TRIMS[OUT] {ON|OFF}
--10. 显示每个sql语句花费的执行时间
set TIMING {ON|OFF}
--11. 允许sql语句中间有空行
SET SQLBLANKLINES ON
--12. 设置是否显示替代变量被替代前后的语句
set verify on/off
--13. 自定义域分割
set colsep ,

/* show 显示变量的值*/
-- 1. 显示当前环境变量的值
show all
-- 2. 显示当前在创建函数、存储过程、触发器、包等对象的错误信息
show error
-- 3. 显示初始化参数的值
show PARAMETER [parameter_name]
-- 4. 显示数据库的版本
show REL[EASE]
-- 5. 显示oracle错误信息代码
show sqlcode

/* buffer编辑命令 */

List:列出缓冲区的sql命令
Append:在缓冲区当前行添加内容
Change 字符1  字符2  :改变缓冲区的字符
input:在当前行后增加一行
n:把第n行设定为当前行
edit:编辑缓冲区
run /:运行缓冲区的命令

/* 替代变量,可用&,&&引用,定义替代变量 */
-- 1. 定义, DEFINE 变量名=值
def[ine] job=SALESMAN
select * from emp where job='&job';  --引用时加''
-- 2. 查看变量,DEFINE [变量]
define [varname]
-- 3. 重新设置替代变量,hide隐藏
acc[ept] 变量名 [ char | date | [ num[ber] ] | binary_float | binary_double  ] --变量类型
                [ for[mat] format_str ] --格式
                [ default default_value ] --变量的默认值
                [ { prompt prompt_text } | nopr[ompt] ] --提示信息
                [ hide ] --不显示用户输入,类似于输入不回显密码的输入

/* 绑定变量 */
-- 1. 定义
SQL> var y numb
Usage: VAR[IABLE] [ [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
                    VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
                    NVARCHAR2 (n) | CLOB | NCLOB | BLOB | BFILE
                    REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE ] ]
SQL> var y varchar2(20)
SQL> var
variable   y
datatype   VARCHAR2(20)
-- 2.赋值
SQL> exec :y := 'SCOTT'
-- 3.查看所有,某个变量
SQL> var [y]
SQL> print [y]
-- 4.引用  --如果已经是字符型,不要再加''
SQL> select distinct owner from dba_segments where owner=:y;


/* @与@@的区别
@等于start命令,用来运行一个SQL脚本文件。
@命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。

@@用在脚本文件中,用来指定用@@执行的文件与@@所在的文件在同一目录,
而不用指定全路径,也不从SQLPATH环境变量指定的路径中寻找文件,一般用在嵌套脚本文件中。
*/

/* &与&&的区别
&用来创建一个临时变量,每当遇到这个临时变量时,都会提示你输入一个值。

&&用来创建一个持久变量,就像用用define命令或带new_vlaue字句的column命令创建的持久变量一样。
当用&&命令引用这个变量时,只是在第一次遇到时提示一次。
*/

-------------------------------------------------------------------------------

/* 执行过程 */

BEGIN
    getDeptCount;
END;

EXEC getDeptCount

CALL  getDeptCount();

/* 执行函数 */

exec :dba := dbms_utility.make_data_block_address(4, 20);
print :dba

/* 参数传递

    1,位置传递 exec add_dept(50,'SALES','BEIJING')
    2,名称传递 exec add_dept(v_dname=>'SALES',v_deptno=>50,v_loc=>'BEIJING')
    3,组合传递 exec add_dept(50,v_loc=>'BEIJING,v_dname=>'SALES')
*/


-- $ORACLE_HOME/sqlplus/admin/glogin.sql
define _editor=vim
set linesize 999
set pagesize 9999
set serveroutput on size 1000000
set trimspool on
column plan_plus_exp format a80

/* sqlplus help index */
$ ls /opt/oracle/112/sqlplus/admin/help
helpbld.sql  helpdrop.sql  helpus.sql  hlpbld.sql

--创建
sqlplus system/ @hlpbld.sql helpus.sql

--就是把helpus.sql内容插入help表中,所以没开数据库的时候,也可以参考看helpus.sql

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28859270/viewspace-775795/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-06-30

  • 博文量
    31
  • 访问量
    142178