`

SQL PLUS容易遗忘之命令

阅读更多

sqlplus 用户名/密码@为连接oracle所添加的本地网络服务的名字。
C:\Users\haiyang>sqlplus
scott/tiger@myoracle9i

SQL*Plus: Release 11.2.0.1.0 Production on 星期日 2月 20 22:12:15 2011

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL>

desc tablename 来显示表的结构。

SQL> desc emp;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)

SET LINE[SIZE] {80| n},其中n为自然数,80为默认值。该命令是将显示屏的显示输出置为n个字符那么宽,80个字符为此命令的默认显示宽度。
set pagesize 120用来设置每页输入的行数。
col hiredate for a15用来指定用15个字符的长度来显示列hiredate.

L(LIST)命令。该命令用来显示SQL缓冲区中的内容。
SQL> l
  1  select *
  2* from emp
SQL>

 n  text命令来修改出错的部分,其中n为在SQL缓冲区中的SQL语句
的行号,text为替代出错部分的SQL语句。
SQL> l
  1  select *
  2* from emp
SQL> 2 from dept
SQL> l
  1  select *
  2* from dept
SQL>

命令‘/’(RUN)来重新运行在SQL缓冲区中的SQL语句。
SQL> /

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

n命令设置当前行,a(append)命令在当前行添加内容。
SQL> l
  1  select ename
  2  from emp
  3* order by sal desc
SQL> 1
  1* select ename
SQL> a ,deptno,sal
  1* select ename,deptno,sal
SQL> l
  1  select ename,deptno,sal
  2  from emp
  3* order by sal desc
SQL> /

ENAME          DEPTNO        SAL
---------- ---------- ----------
KING               10       5000
SCOTT              20       3000
FORD               20       3000
JONES              20       2975
BLAKE              30       2850
CLARK              10       2450
ALLEN              30       1600
TURNER             30       1500
MILLER             10       1300
WARD               30       1250
MARTIN             30       1250
ADAMS              20       1100
JAMES              30        950
SMITH              20        800

已选择14行。


使用0 text在第一行之前插入一行数据。也可以使用 当前最大的行数+1 text来增加一行。
SQL> l
  1  select ename,deptno,sal
  2  from emp
  3* order by sal desc
SQL> 0 create table emp_temp as
SQL> l
  1  create table emp_temp as
  2  select ename,deptno,sal
  3  from emp
  4* order by sal desc
SQL> /

表已创建。

SQL>

使用del n删除第n行。如果没有指定n就是删除掉当前行。也可以使用del m n命令删除从m行到n行的所有内容。

SQL> l
  1  create table emp_temp as
  2  select ename,deptno,sal
  3  from emp
  4* order by sal desc
SQL> del 1
SQL> l
  1  select ename,deptno,sal
  2  from emp
  3* order by sal desc
SQL> del
SQL> l
  1  select ename,deptno,sal
  2* from emp
SQL>

SQL> l
  1  create table emp_temp as
  2  select ename,deptno,sal
  3  from emp
  4* order by sal
SQL> del 2 4
SQL> l
  1* create table emp_temp as
SQL>

使用C[HANGE]/原文/新的正文命令来修改SQL缓冲区中的语句。该命令是在当前行中用“新的正文”替代“原文”。
注意是c /oldtext/newtext,/oldtext和/newtext中间没有空格。如果在下例中使用c /dept /emp,会出现”SP2-0023: 未找到字符串“的错误。

SQL> select ename, deptno, sal
  2  from dept
  3  where sal > 1000
  4  order by sal desc;
where sal > 1000
      *
第 3 行出现错误:
ORA-00904: "SAL": 无效的标识符


SQL> l
  1  select ename, deptno, sal
  2  from dept
  3  where sal > 1000
  4* order by sal desc
SQL> 2
  2* from dept
SQL> c /dept/emp
  2* from emp
SQL> l
  1  select ename, deptno, sal
  2  from emp
  3  where sal > 1000
  4* order by sal desc
SQL> /

ENAME          DEPTNO        SAL
---------- ---------- ----------
KING               10       5000
SCOTT              20       3000
FORD               20       3000
JONES              20       2975
BLAKE              30       2850
CLARK              10       2450
ALLEN              30       1600
TURNER             30       1500
MILLER             10       1300
WARD               30       1250
MARTIN             30       1250
ADAMS              20       1100

已选择12行。

SQL>

SAVE命令把SQL缓冲区的内容存入指定的文件,这个文件叫脚本文件。save命令会创建指定的文件,但是要求路径已经存在,否则无法创建保存文件。
SQL*PLUS的命令不被存入SQL缓冲区,SQL缓冲区中只保存上一个sql。SQL缓冲区只能存储一个SQL语句。
生成了脚本文件之后,可以使用SQL*PLUS的GET命令将这个脚本文件装入SQL缓冲区。

SQL> l
  1  select ename, deptno, sal
  2  from emp
  3  where sal > 1000
  4* order by sal desc
SQL> save d:\sql_test\sample
SP2-0110: 无法创建保存文件 "d:\sql_test\sample.sql"
SQL> save d:\oracle_sql_study\sample
已创建 file d:\oracle_sql_study\sample.sql
SQL> select distinct deptno from emp;

    DEPTNO
----------
        10
        20
        30

SQL> l
  1* select distinct deptno from emp
SQL> get d:\oracle_sql_study\sample.sql
  1  select ename, deptno, sal
  2  from emp
  3  where sal > 1000
  4* order by sal desc
SQL> /

ENAME          DEPTNO        SAL
---------- ---------- ----------
KING               10       5000
SCOTT              20       3000
FORD               20       3000
JONES              20       2975
BLAKE              30       2850
CLARK              10       2450
ALLEN              30       1600
TURNER             30       1500
MILLER             10       1300
WARD               30       1250
MARTIN             30       1250
ADAMS              20       1100

已选择12行。

SQL>

可以使用SQL*PLUS的ed[it]命令来直接编辑d:\oracle_sql_study\sample.sql。

可以使用SQL*PLUS的@ 或START命令来直接运行脚本文件D:\SQL\SAMPLE.sql。
@ 或START命令是把指定脚本文件的内容装入SQL缓冲区中并运行。

SQL> @d:\oracle_sql_study\sample.sql

ENAME          DEPTNO        SAL
---------- ---------- ----------
ALLEN              30       1600
WARD               30       1250
JONES              20       2975
MARTIN             30       1250
BLAKE              30       2850
CLARK              10       2450
SCOTT              20       3000
KING               10       5000
TURNER             30       1500
ADAMS              20       1100
FORD               20       3000
MILLER             10       1300

已选择12行。

SQL>


SPOOL D:\SQL\OUTPUT中SPOOL之后为文件名,该命令的意思是在该命令之后屏
所显示的一切都要存到D:\SQL目录下的OUTPUT文件中。只有当输入SPOOL OFF之
才能看到OUTPUT文件中的内容。如果您输入SPOOL OUT表示其内容将送到打印机。

spool命令会创建指定的文件,但是要求路径已经存在,否则无法创建spool文件。

SQL> spool d:\sql_test\output
SP2-0606: 无法创建 SPOOL 文件 "d:\sql_test\output.LST"
SQL> spool d:\oracle_sql_study\output
SQL> l
  1  select ename, deptno, sal
  2  from emp
  3* where sal > 1000
SQL> /

ENAME          DEPTNO        SAL
---------- ---------- ----------
ALLEN              30       1600
WARD               30       1250
JONES              20       2975
MARTIN             30       1250
BLAKE              30       2850
CLARK              10       2450
SCOTT              20       3000
KING               10       5000
TURNER             30       1500
ADAMS              20       1100
FORD               20       3000
MILLER             10       1300

已选择12行。

SQL> spool off
SQL>

分享到:
评论

相关推荐

    SAP_very_useful_Oracle_SQL_cmd.zip_SAP_SAP rebuild index_Table

    “sqlplus-tips.txt”是一个关于如何更有效地使用Oracle的SQL*Plus工具的提示集合,SQL*Plus是Oracle数据库管理员进行查询、脚本执行和数据库维护的命令行界面。 “reset a password ofr a SAP_user.txt”显然包含...

    Oracle_默认密码及修改[参考].pdf

    首先,我们需要使用 SQL*Plus 工具连接到 Oracle 数据库。我们可以使用以下命令连接到数据库: SQL> connect sys/oracle as sysdba 已连接。 2. 查看当前用户列表 然后,我们可以使用以下命令查看当前数据库中的...

    Oracle数据库system用户忘记了密码怎么办?.

    2. **以sysdba身份登录**:在命令行中输入`sqlplus /nolog`进入SQL*Plus环境,然后使用`conn / as sysdba`命令以sysdba的身份连接数据库。这一步是关键,因为它允许你在没有系统用户密码的情况下访问数据库。 3. **...

    PLSQL Developer使用说明及技巧

    命令窗口类似于SQL*Plus,但它集成了更多高级功能,如语法增强和内置编辑器。这使得用户能够在同一个环境中编写和执行SQL脚本,而无需在不同工具之间切换,大大提高了工作效率。 ##### 2.6 报表功能 报表功能允许...

    当Oralce所有用户密码忘记,重置用户密码百试不爽

    2. **安装Oracle客户端**:为了能够通过命令行工具连接到Oracle数据库,你需要在本地计算机上安装Oracle客户端软件,其中包含SQL*Plus工具。 #### 步骤一:启动SQL*Plus并登录 1. **打开命令提示符或终端**:根据...

    system密码修改及修改计算机名

    通过命令行进入到`D:\oracle\ora92\bin`目录下,然后输入以下命令来启动SQL*Plus: ``` D:\oracle\ora92\bin>sqlplus /nolog ``` **2. 以sysdba身份登录** 登录后,需要使用`sys`账户并以`sysdba`权限登录。输入...

    ORACLE密码忘记解决办法.

    2. **进入应急管理模式**:在SQL*Plus中,执行命令`ALTER SYSTEM SET ENFORCED RESTRICTED SESSION SCOPE=SESSION;`来进入应急模式。这样可以限制其他用户的活动,确保数据的安全。 3. **解锁并重置用户密码**:...

    Oracle管理员密码忘记怎么办

    首先,需要通过命令行工具SQL*Plus连接到Oracle数据库。示例代码如下: ``` C:\>sqlplus /nolog SQL> connect / as sysdba ``` 这里的`/ as sysdba`表示以sys用户的身份并且使用DBA权限登录。 ##### 步骤2:更改sys...

    oracle11g管理员密码忘记怎么办 sqlplus解决忘记密码问题

    执行完上述语句后,你可以通过`EXIT`命令退出SQL*Plus。然后重新以新密码登录`sys`或`system`账户,确认密码已成功更改。 需要注意的是,上述操作需要数据库实例已经启动,且具备操作系统级别的权限。在生产环境中...

    找回Oracle重置密码方法

    首先,你需要以具有最高权限的身份登录到SQL*Plus,通常是SYSDBA或SYSOPER。这可以通过以下命令实现: ``` sqlplus / as sysdba ``` 如果正确执行,你会看到一个SQL提示符,表明你已经成功登录。 #### 2. 解锁...

    Oracle数据库密码重置、导入导出库命令示例应用

    2. 输入`sqlplus /nolog`以启动SQL*Plus而不连接到数据库。 3. 输入`conn /as sysdba`连接到数据库作为SYSDBA用户。 4. 使用`ALTER USER`命令修改用户密码,例如将system用户的密码重置为"123456",命令如下: ``` ...

    Oracle 忘记密码的找回方法

    3. **以无登录状态连接SQL*Plus**:接下来,输入以下命令以启动SQL*Plus,但不直接连接到任何数据库: ``` sqlplus /nolog ``` 4. **以SYSDBA角色连接**:在SQL*Plus中,你可以用以下命令以SYSDBA权限连接到...

    登录oracle数据库时密码忘记的解决方法

    在IT行业中,数据库管理是至关重要的任务之一,而Oracle数据库作为全球广泛使用的数据库管理系统,其安全性及密码管理显得尤为重要。当遇到"登录Oracle数据库时忘记密码"的问题时,确实会带来一些困扰,但不用担心,...

    Oracle 管理员账号密码忘记的快速解决方法

    2. 直接使用SQL*Plus工具(sqlplus/nolog)启动命令行界面,并连接到数据库中(不需登录)。在SQL*Plus中输入: ``` conn /as sysdba ``` 如果当前操作系统账号属于ora_dba组,则可以直接登录成功。 3. 执行...

Global site tag (gtag.js) - Google Analytics