网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

SQLPLUS命令使用大全

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。
    我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sqlbuffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sqlbuffer中的sql语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
    除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sqlbuffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。
    下面就介绍一下一些常用的sql*plus命令:
    1.执行一个SQL脚本文件
    SQL>startfile_name
    SQL>@file_name
    我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
    2.对当前的输入进行编辑
    SQL>edit
    3.重新运行上一次运行的sql语句
    SQL>/
    4.将显示的内容输出到指定文件
    SQL>SPOOLfile_name
    在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
    5.关闭spool输出
    SQL>SPOOLOFF
    只有关闭spool输出,才会在输出文件中看到输出的内容。
    6.显示一个表的结构
    SQL>desctable_name
    7.COL命令:
    主要格式化列的显示形式。
    该命令有许多选项,具体如下:
    COL[UMN][{column|expr}[option...]]
    Option选项可以是如下的子句:
    ALI[AS]alias
    CLE[AR]
    FOLD_A[FTER]
    FOLD_B[EFORE]
    FOR[MAT]format
    HEA[DING]text
    JUS[TIFY]{L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
    LIKE{expr|alias}
    NEWL[INE]
    NEW_V[ALUE]variable
    NOPRI[NT]|PRI[NT]
    NUL[L]text
    OLD_V[ALUE]variable
    ON|OFF
    WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
    1).改变缺省的列标题
    COLUMNcolumn_nameHEADINGcolumn_heading
    Forexample:
    Sql>select*fromdept;
    DEPTNODNAMELOC
    -----------------------------------------------
    10ACCOUNTINGNEWYORK
    sql>colLOCheadinglocation
    sql>select*fromdept;
    DEPTNODNAMElocation
    ------------------------------------------------
    10ACCOUNTINGNEWYORK
    2).将列名ENAME改为新列名EMPLOYEENAME并将新列名放在两行上:
    Sql>select*fromemp
    DepartmentnameSalary
    ------------------------------
    10aaa11
    SQL>COLUMNENAMEHEADING’Employee|Name’
    Sql>select*fromemp
    Employee
    DepartmentnameSalary
    ------------------------------
    10aaa11
    note:thecolheadingturnintotwolinesfromoneline.
    3).改变列的显示长度:
    FOR[MAT]format
    Sql>selectempno,ename,jobfromemp;
    EMPNOENAMEJOB
    -----------------------------
    7369SMITHCLERK
    7499ALLENSALESMAN
    7521WARDSALESMAN
    Sql>colenameformata40
    EMPNOENAMEJOB
    -----------------------------------------------------------
    7369SMITHCLERK
    7499ALLENSALESMAN
    7521WARDSALESMAN
    4).设置列标题的对齐方式
    JUS[TIFY]{L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
    SQL>colenamejustifycenter
    SQL>/
    EMPNOENAMEJOB
    -----------------------------------------------------------
    7369SMITHCLERK
    7499ALLENSALESMAN
    7521WARDSALESMAN
    对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边
    5).不让一个列显示在屏幕上
    NOPRI[NT]|PRI[NT]
    SQL>coljobnoprint
    SQL>/
    EMPNOENAME
    --------------------------------------------------
    7369SMITH
    7499ALLEN
    7521WARD
    6).格式化NUMBER类型列的显示:
    SQL>COLUMNSALFORMAT$99,990
    SQL>/
    Employee
    DepartmentNameSalaryCommission
    ---------------------------------------
    30ALLEN$1,600300
    7).显示列值时,如果列值为NULL值,用text值代替NULL值
    COMMNUL[L]text
    SQL>COLCOMMNUL[L]text
    .设置一个列的回绕方式
    WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
    COL1
    --------------------
    HOWAREYOU?
    SQL>COLCOL1FORMATA5
    SQL>COLCOL1WRAPPED
    COL1
    -----
    HOWA
    REYO
    U?
    SQL>COLCOL1WORD_WRAPPED
    COL1
    -----
    HOW
    ARE
    YOU?
    SQL>COLCOL1WORD_WRAPPED
    COL1
    -----
    HOWA
    9).显示列的当前的显示属性值
    SQL>COLUMNcolumn_name
    10).将所有列的显示属性设为缺省值
    SQL>CLEARCOLUMNS
    8.屏蔽掉一个列中显示的相同的值
    BREAKONbreak_column
    SQL>BREAKONDEPTNO
    SQL>SELECTDEPTNO,ENAME,SAL
    FROMEMP
    WHERESAL<2500
    ORDERBYDEPTNO;
    DEPTNOENAMESAL
    ------------------------------
    10CLARK2450
    MILLER1300
    20SMITH800
    ADAMS1100
    9.在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。
    BREAKONbreak_columnSKIPn
    SQL>BREAKONDEPTNOSKIP1
    SQL>/
    DEPTNOENAMESAL
    ------------------------------
    10CLARK2450
    MILLER1300
    20SMITH800
    ADAMS1100
    10.显示对BREAK的设置
    SQL>BREAK
    11.删除6、7的设置
    SQL>CLEARBREAKS
    12.Set命令:
    该命令包含许多子命令:
    SETsystem_variablevalue
    system_variablevalue可以是如下的子句之一:
    APPI[NFO]{ON|OFF|text}
    ARRAY[SIZE]{15|n}
    AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
    AUTOP[RINT]{ON|OFF}
    AUTORECOVERY[ON|OFF]
    AUTOT[RACE]{ON|OFF|TRACE[ONLY]}[EXP[LAIN]][STAT[ISTICS]]
    BLO[CKTERMINATOR]{.|c}
    CMDS[EP]{;|c|ON|OFF}
    COLSEP{_|text}
    COM[PATIBILITY]{V7|V8|NATIVE}
    CON[CAT]{.|c|ON|OFF}
    COPYC[OMMIT]{0|n}
    COPYTYPECHECK{ON|OFF}
    DEF[INE]{&;|c|ON|OFF}
    DESCRIBE[DEPTH{1|n|ALL}][LINENUM{ON|OFF}][INDENT{ON|OFF}]
    ECHO{ON|OFF}
    EDITF[ILE]file_name[.ext]
    EMB[EDDED]{ON|OFF}
    ESC[APE]{|c|ON|OFF}
    FEED[BACK]{6|n|ON|OFF}
    FLAGGER{OFF|ENTRY|INTERMED[IATE]|FULL}
    FLU[SH]{ON|OFF}
    HEA[DING]{ON|OFF}
    HEADS[EP]{||c|ON|OFF}
    INSTANCE[instance_path|LOCAL]
    LIN[ESIZE]{80|n}
    LOBOF[FSET]{n|1}
    LOGSOURCE[pathname]
    LONG{80|n}
    LONGC[HUNKSIZE]{80|n}
    MARK[UP]HTML[ON|OFF][HEADtext][BODYtext][ENTMAP{ON|OFF}][SPOOL
    {ON|OFF}][PRE[FORMAT]{ON|OFF}]
    NEWP[AGE]{1|n|NONE}
    NULLtext
    NUMF[ORMAT]format
    NUM[WIDTH]{10|n}
    PAGES[IZE]{24|n}
    PAU[SE]{ON|OFF|text}
    RECSEP{WR[APPED]|EA[CH]|OFF}
    RECSEPCHAR{_|c}
    SERVEROUT[PUT]{ON|OFF}[SIZEn][FOR[MAT]{WRA[PPED]|WOR[D_
    WRAPPED]|TRU[NCATED]}]
    **[INOUT]{VIS[IBLE]|INV[ISIBLE]}
    SHOW[MODE]{ON|OFF}
    SQLBL[ANKLINES]{ON|OFF}
    SQLC[ASE]{MIX[ED]|LO[WER]|UP[PER]}
    SQLCO[NTINUE]{>|text}
    SQLN[UMBER]{ON|OFF}
    SQLPRE[FIX]{#|c}
    SQLP[ROMPT]{SQL>|text}
    SQLT[ERMINATOR]{;|c|ON|OFF}
    SUF[FIX]{SQL|text}
    TAB{ON|OFF}
    TERM[OUT]{ON|OFF}
    TI[ME]{ON|OFF}
    TIMI[NG]{ON|OFF}
    TRIM[OUT]{ON|OFF}
    TRIMS[POOL]{ON|OFF}
    UND[ERLINE]{-|c|ON|OFF}
    VER[IFY]{ON|OFF}
    WRA[P]{ON|OFF}
    1).设置当前session是否对修改的数据进行自动提交
    SQL>SETAUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
    2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
    SQL>SETECHO{ON|OFF}
    3).是否显示当前sql语句查询或修改的行数
    SQL>SETFEED[BACK]{6|n|ON|OFF}
    默认只有结果大于6行时才显示结果的行数。如果setfeedback1,则不管查询到多少行都返回。当为off时,一律不显示查询的行数
    4).是否显示列标题
    SQL>SETHEA[DING]{ON|OFF}
    当setheadingoff时,在每页的上面不显示列标题,而是以空白行代替
    5).设置一行可以容纳的字符数
    SQL>SETLIN[ESIZE]{80|n}
    如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
    6).设置页与页之间的分隔
    SQL>SETNEWP[AGE]{1|n|NONE}
    当setnewpage0时,会在每页的开头有一个小的黑方框。
    当setnewpagen时,会在页和页之间隔着n个空行。
    当setnewpagenone时,会在页和页之间没有任何间隔。
    7).显示时,用text值代替NULL值
    SQL>SETNULLtext
    .设置一页有多少行数
    SQL>SETPAGES[IZE]{24|n}
    如果设为0,则所有的输出内容为一页并且不显示列标题
    9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。
    SQL>SETSERVEROUT[PUT]{ON|OFF}
    在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。dbms_output.put_line会"吃掉"最前面的空格?在setserveroutputon后加上formatwrapped参数!
    10).当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。
    SQL>SETWRA[P]{ON|OFF}
    当输出的行的长度大于设置的行的长度时(用setlinesizen命令设置),当setwrapon时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。
    11).是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。
    SQL>SETTERM[OUT]{ON|OFF}
    在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置settermspooloff后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。
    12).将SPOOL输出中每行后面多余的空格去掉
    SQL>SETTRIMS[OUT]{ON|OFF}
    13)显示每个sql语句花费的执行时间
    setTIMING{ON|OFF}
    14.修改sqlbuffer中的当前行中,第一个出现的字符串
    C[HANGE]/old_value/new_value
    SQL>l
    1*select*fromdept
    SQL>c/dept/emp
    1*select*fromemp
    15.编辑sqlbuffer中的sql语句
    EDI[T]
    16.显示sqlbuffer中的sql语句,listn显示sqlbuffer中的第n行,并使第n行成为当前行
    L[IST][n]
    17.在sqlbuffer的当前行下面加一行或多行
    I[NPUT]
    18.将指定的文本加到sqlbuffer的当前行后面
    A[PPEND]
    SQL>selectdeptno,
    2dname
    3fromdept;
    DEPTNODNAME
    ------------------------
    10ACCOUNTING
    20RESEARCH
    30SALES
    40OPERATIONS
    SQL>L2
    2*dname
    SQL>a,loc
    2*dname,loc
    SQL>L
    1selectdeptno,
    2dname,loc
    3*fromdept
    SQL>/
    DEPTNODNAMELOC
    -------------------------------------
    10ACCOUNTINGNEWYORK
    20RESEARCHDALLAS
    30SALESCHICAGO
    40OPERATIONSBOSTON
    19.将sqlbuffer中的sql语句保存到一个文件中
    SAVEfile_name
    20.将一个文件中的sql语句导入到sqlbuffer中
    GETfile_name
    21.再次执行刚才已经执行的sql语句
    RUN
    or
    /
    22.执行一个存储过程
    EXECUTEprocedure_name
    23.在sql*plus中连接到指定的数据库
    CONNECTuser_name/passwd@db_alias
    24.设置每个报表的顶部标题
    TTITLE
    25.设置每个报表的尾部标题
    BTITLE
    26.写一个注释
    REMARK[text]
    27.将指定的信息或一个空行输出到屏幕上
    PROMPT[text]
    28.将执行的过程暂停,等待用户响应后继续执行
    PAUSE[text]
    Sql>PAUSEAdjustpaperandpressRETURNtocontinue.
    29.将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)
    COPY{FROMdatabase|TOdatabase|FROMdatabaseTOdatabase}
    {APPEND|CREATE|INSERT|REPLACE}destination_table
    [(column,column,column,...)]USINGquery
    sql>COPYFROMSCOTT/TIGER@HQTOJOHN/CHROME@WEST
    createemp_temp
    USINGSELECT*FROMEMP
    30.不退出sql*plus,在sql*plus中执行一个操作系统命令:
    HOST
    Sql>hosthostname
    该命令在windows下可能被支持。
    31.在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus:
    !
    sql>!
    $hostname
    $exit
    sql>
    该命令在windows下不被支持。
    32.显示sql*plus命令的帮助
    HELP
    如何安装帮助文件:
    Sql>@?sqlplusadminhelphlpbld.sql?sqlplusadminhelphelpus.sql
    Sql>helpindex
    33.显示sql*plus系统变量的值或sql*plus环境变量的值
    Syntax
    SHO[W]option
    whereoptionrepresentsoneofthefollowingtermsorclauses:
    system_variable
    ALL
    BTI[TLE]
    ERR[ORS][{FUNCTION|PROCEDURE|PACKAGE|PACKAGEBODY|
    TRIGGER|VIEW|TYPE|TYPEBODY}[schema.]name]
    LNO
    PARAMETERS[parameter_name]
    PNO
    REL[EASE]
    REPF[OOTER]
    REPH[EADER]
    SGA
    SPOO[L]
    SQLCODE
    TTI[TLE]
    USER
    1).显示当前环境变量的值:
    Showall
    2).显示当前在创建函数、存储过程、触发器、包等对象的错误信息
    Showerror
    当创建一个函数、存储过程等出错时,变可以用该命令查看在那个地方出错及相应的出错信息,进行修改后再次进行编译。
    3).显示初始化参数的值:
    showPARAMETERS[parameter_name]
    4).显示数据库的版本:
    showREL[EASE]
    5).显示SGA的大小
    showSGA
    6).显示当前的用户名
    showuser
    
  • 上一篇资讯: sqlplus常用命令
  • 下一篇资讯: sqlplus
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师