如何列出表的结构
当你完成表的创建后,表结构的各项信息(表名、列名、类型等)就已经自动存储到Oracle系统的数据字典中。对于开发人员和DBA都需要了解相关表的结构。
✿问题的提出
Oracle系统的表结构存储在数据字典内,我们如何直接列出某个表的结构是开发人员关心的问题,那么如何列出某个表的基本结构呢?
✿实现技术
SQL*Plus使用DESCript命令可列出表的基本结构,也可列出存储过程等的相关信息,可在SQL>提示下使用DESC 命令即可实现。
✿实现步骤
要列出你所关心的表的结构,你需要知道表的名词,如要列出emp表的结果,则:
-- --适应版本:Oracle 9i~12c -- 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) |
✿说明
这里需要指出的是:用DESC命令只能列出的表基本的结构,对于表包含的主键、约束等不会被列出来,要想得到表的结构详细信息,建议采用DBMS_MEDATATA包实现,关于这个内置包的详细见后面章节。
如何重复执行最后的SQL语句
在开发与管理过程中,我们一般都输入多条SQL语句,但是,在SQL>缓冲区中Oracle只为会话保持最后一条SQL语句,当你希望重复执行同一条语句进行时实际上执行最后一条语句。
✿问题的提出
许多地方都需要用到重复执行同一条SQL语句这样的要求,使用者不再重新输入即可多次执行。在SQL*Plus中支持重复执行同一条SQL语句的功能,那么,具体如何实现呢?
✿实现技术
要在SQL*Plus环境下重复执行同一条SQL语句或同一个PL/SQL语句时,这条语句必须先存在SQL的缓冲区中。当SQL语句还在SQL缓冲区时,就可使用斜扛(“/”)来实现。
✿实现步骤
为了能执行某个SQL语句,则首先将该语句输入到SQL缓冲区(我们在“SQL>”提示下所输入的SQL语句实际就进入了SQL缓冲区),然后在SQL>后面用“/”来实现执行上面刚输入的SQL语句,如:
-- --适应版本:Oracle 9i~12c -- SQL> select * from dept;
DEPTNO DNAME LOC ---------- -------------- ------------- 50 abc Beiijing 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 60 dlld tj
已选择6行。
SQL>--下面是用 / 来重复执行目前还在缓冲区的SELECT 语句: SQL> /
DEPTNO DNAME LOC ---------- -------------- ------------- 50 abc Beiijing 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 60 dlld tj
已选择6行。 |
✿说明
在SQL>上输入“/”(斜扛) 来实现符号, Oracle系统用run命令也能执行SQL语句。但是Oracle原厂很少使用run命令。
如何用记事本编辑当前SQL语句
在SQL*Plus环境中编辑SQL语句是一个经常使用的方法,编辑可以将现有的SQL语句进行修改后变为满足新要求的SQL语句。
✿问题的提出
在SQL>环境中编辑目前缓冲区中的SQL语句,可通过修改SQL语句而不是重新输入快速满足需要,那么如何启动文本编辑窗口呢?
✿实现技术
在SQL>提示下,在MS-Windows环境,Oracle 支持自动启动记事本编辑窗口,但是在UNIX环境下可支持进入vi编辑器。
✿实现步骤
在SQL>提示下,可输入ed 来进入到“记事本”编辑窗,当编辑SQL语句完成点击“文件”选择“保存”,然后选择“退出”再回到SQL>提示下。
✿说明
MS-Windows环境支持在SQL>提示下直接进入“记事本”编辑器,我们建议你在调试期可以这样做,但在大型系统的设计与开发过程中,可采用更有效的方法实现。
特别提醒的是:当你在Unix(或Linux)环境登录到SQL>时,你千万不要使用 ed 来实现进入“记事本”文本编辑器,这样会导致敲击任何建都不被识别的状态。
Oready即为“One Technology Ready”!
Oready不仅仅是数据库领域的专家,同时也是一个社区,我们汇集百位数据库领域资深顾问、讲师,服务于数据中心的技术支持与技能传授,注重对客户的关键数据库运营支撑,强调经验的分享-Skill Transfer,聚焦数据中心的完美结合.