sqlplus基本属性配置方法

上传人:jin****ng 文档编号:185458906 上传时间:2023-02-03 格式:DOCX 页数:14 大小:27.13KB
收藏 版权申诉 举报 下载
sqlplus基本属性配置方法_第1页
第1页 / 共14页
sqlplus基本属性配置方法_第2页
第2页 / 共14页
sqlplus基本属性配置方法_第3页
第3页 / 共14页
资源描述:

《sqlplus基本属性配置方法》由会员分享,可在线阅读,更多相关《sqlplus基本属性配置方法(14页珍藏版)》请在装配图网上搜索。

1、LONG 数据类型 1、LONG数据类型中存储的是可变长字符串,最大长度限制是 2GB。2、对于超出一定长度的文本,基本只能用LONG类型来存储,数 据字典中很多对象的定义就是用LONG来存储的。3、LONG类型主要用于不需要作字符串搜索的长串数据,如果要 进行字符搜索就要用 varchar2 类型。4、很多工具,包括SQL*Plus,处理LONG数据类型都是很困难的。5、LONG 数据类型的使用中,要受限于磁盘的大小。 能够操作 LONG 的 SQL 语句:1 、 Select 语句2、Update 语句中的 SET 语句3、Insert语句中的VALUES语句 限制: 1、一个表中只能包含

2、一个 LONG 类型的列。 2、不能索引LONG类型列。 3、不能将含有LONG类型列的表作聚簇。 4、不能在SQL*Plus中将LONG类型列的数值插入到另一个表格中, 如 insert into .select。 5、不能在SQL*Plus中通过查询其他表的方式来创建LONG类型列, 如 create table as select。 6、不能对LONG类型列加约束条件(NULL、NOT NULL、DEFAULT 除外),如:关键字列(PRIMARY KEY)不能是LONG数据类型。7、 LONG 类型列不能用在 Select 的以下子句中: where、 groupby、order by

3、,以及带有 distinct 的 select 语句中。8、 LONG 类型列不能用于分布查询。 9、PL/SQL过程块的变量不能定义为LONG类型。 10、LONG类型列不能被SQL函数所改变,如:substr、instr。 SQL*Plus 中操作 LONG 类型列:1 、 set long n2、 col 列名 format Ann代表n位字符(n为大于零的整数),An表示将此列的数据显 示宽度限制为不超过 n 位。2 Oracle是C/S (Client/Server)结构的大型数据库,主要语言是4GLSQL语 言,具有功能强大而简单易学的优点。C/S结构的工作过程是:当客户端(C端)

4、 输入并发送一条SQL语句后,便通过网络送到服务器端(S端),在那里被分 析执行然后再将结果通过网络返回到客户端,此时客户端可以再发下一条 SQL 语句。可见,客户端是一条语句一条语句的发送,服务器端是一条一条的分析 执行,结果再一次次的返回。但是,这样单个的 SQL 语句引起了频繁的网络通 信,大大降低了系统性能。PL/SQL是扩展SQL后的语言,PL/SQL块作为一个单 位发送,使用了较少的网络通信,而且在运行中能根据条件,决定执行或重复 执行什么语句,既保留了 SQL 的强大性,又弥补了不足。1 提高程序的运行速度1.1 使用存储过程存储过程是 Oracle 数据库的一种对象,是一种带名

5、的 PL/SQL 过程程序块 它在创建后,被数据库服务器进行语法和句法分析,以编译了的形式存储在数 据库中,可以被有权用户在任何需要的地方调用。当客户端应用程序调用时, 只需发送一条调用命令,数据库服务器就会执行该过程。与一般的 PL/SQL 块主 要的不同是:无需在网上传送大量的源程序代码,只传送一条调用命令,这就 大大降低了网络通信的负担;而且只在刚创建时分析编译一次,每次调用直接 执行编译了的代码,因此运行速度较快。在实际开发时,对于具有共同特性的功能模块最好使用存储过程,调用时 通过使用不同的实际参数值来实现某一具体的处理。如果能充分利用存储过程 来完成应用系统的操作与处理,则可大大提

6、高系统的运行性能。1.2编写可重用共享池中已有语句的SQL语句共享内存缓冲区和后台进程合称为一个 Oracle 实例。当启动一个 Oracle 实例时,会有许多的 Oracle 后台进程被启动,每个进程都负责运行数据库的不 同方面的处理,各进程通过共享内存彼此之间进行通信,该块内存就是系统全 局区SGA。SGA被分隔为不同的区域,其中一个称作共享池(Shared Pool)的 区域中包含了发送给数据库的SQL语句的正文和PL/SQL块,以及它们经过分析 后的表示形式与执行方案,其中执行方案是数据库实际处理该语句的方法,例 如,需要访问哪些表和索引、是否需要执行排序操作等等。因为要执行一条 SQ

7、L 语句,数据库就必须确定其执行方案。当数据库从客 户应用程序接收到一条 SQL 语句时,它首先检查是否该语句在共享池中。若在 那么不重新对其分析而是重复使用已经在共享池中的形式及执行方案;若不在, 则对该语句进行分析,得到新的分析形式与执行方案并进行存储,覆盖共享池 中以前的内容。由此可以看出,编写可重用共享池中语句的SQL语句就显得十分必要,因 为避免不必要的重新分析,会很大程度上减小服务器所承担的工作量。要想重 复使用共享池中的语句,就应该编写与其格式一致的语句,包括字母的大小写、 标点符号、换行的位置等都要一致。下面推荐一种有效实用的方法。1.2.1 SQL 语句各部分的格式一条语句可

8、以一行也可以分多行书写,但最好换行书写,每一子句一行, 且每行的第一个关键字与第一行的关键字的尾部对齐,这样做以确保每次使用 同一条语句时分行的位置一致,而不要让语句在第 80列偶然溢出到下一行,例 如下面的格式中字母T、M、E、D、P是对齐的,一子句占了一行:SELECT col1,col2FROM tablename1WHERE col1 col2AND col2 col3GROUP BY col1;当刚执行过上述语句后,若又接收到下面的语句:SELECT col1,col2FROM tablename2WHERE col1 col2AND col2 col3GROUP BY col2;则

9、通过检查认为与共享池中的语句一致,可重复使用共享池中的执行方案, 不必重新分析。而下面的的语句被认为是不同的,因为分行的位置不同,需要重新进行分 析。SELECT col1,col2 FROM table name2WHERE col1 col2AND col2 col3GROUP BY col1 ;1.2.2 字母大小写采用一致约定 关键字、保留字大写,用户声明的标识符小写。请看下面的两条语句: SELECT xmFROM student;与select xmFROM student;比较的结果是这两句不匹配或者说不等价,因为第一句中的 SELECT 是大写 的,而第二句的是小写的。1.2.

10、3 其它,如运算符两侧各留一个空格等总之,设计自己的编写约定并遵守这些约定,使要处理的语句与共享池中 的相一致,有助于运行性能的提高。2 提高可维护性2.1 编写触发器对表中数据进行修改、删除或插入是非常常见的操作。当表被修改时,应 该自动给其他需要执行操作的程序发信号。触发器可以完成这一功能。在 Oracle8 中,触发器是一段程序,但是这段程序是当发生 INSERT、UPDATE 或 DELETE 操作时被自动执行的,与过程的调用(是通过调用语句调用执行)不同 因此当某事件的发生引起连环更新或其他的相应操作时,通过自动执行触发器 代码实现而不用人工干预,大大减轻了维护工作,同时也很好的保证

11、了数据的 一致性。触发器的优点是自动激发,不管什么引起数据修改(来自程序的或是来自 用户的),它们都工作,所以常常用于不同数据表中的相关数据的串接修改。 采用这种方法实现数据表间接的数据关联可由数据库集中维护控制,规则变化 时只需修改相应的触发器即可,这样系统易于维护,提高了工作效率。2.2 使用%TYPE、%ROWTYPE方式声明变量程序设计中常常要通过变量来实现程序间的数据传递,即将表中数据赋值 给变量,或是把变量值插入到表中。而要完成这些操作的前提就是,表中数据 与变量类型要一致。然而在实际中,表中数据或类型、或宽度有时要变化,一 旦变化,就必须去修改程序中的变量声明部分,否则程序将不能

12、正常运行。为 了减少这部分程序的修改,编程时使用%TYPE、%ROWTYPE方式声明变量,使变 量声明的类型与表中的保持同步,随表的变化而变化,这样的程序在一定程度 上具有更强的通用性。3 提高程序自检能力一个好的应用系统不仅要有好的用户界面、齐全的功能处理模块,而且要 有很强的错误处理能力。因此要求编程人员要预测可能的各种情况(声明异常 情态并引发),并尽可能从错误中恢复过来(编写相应异常情态处理器代码), 这就是Oracle8中的异常部分的程序设计内容。然而这部分的设计绝非易事。 在异常部分的最后设置OTHERS异常情态处理器是个很好的编程习惯,因为它为 运行时刻捕捉到的其它错误指明了处理

13、去向,从而保证了程序的正常运行。格 式如下:BEGINEXCEPTIONWHEN excep name1 THENWHEN excep name2 THEN WHEN OTHERS THEN END;但是对程序中出现的错误要做到正确的处理(即正确选择异常处理器并执 行它),还必须弄清楚异常情态的传播问题。异常情态的传播指的是当在程序块的声明、执行、异常部分分别出现异常 情态时,或在本块中没有相应的异常处理器时会将这个异常情态传播到哪里, 会去激发那个块中的处理器。传播规则是这样的:当一个异常情态是在块的执行部分引发的(最常见的),PL/SQL使用下面 的规则确定激活哪个异常处理器。(1)若当前

14、块对该异常情态设置了处理器, 则执行它并成功完成该块的执行,然后控制转给包含块。(2)若当前块没有该 处理器,则通过在包含块中引发它来传播异常情态。然后对包含块执行步骤 1。 另外,无论是在声明部分引发了一个异常情态,还是在异常处理部分引发,则 该异常情态将立即传播给包含块。在包含块引用上述规则进行异常情态的处理, 即使在当前块设置了 OTHERS处理器也不会被执行。4 易于阅读.对于子程序、触发器、包等带名的程序块,使用结束标识。例如:CREATE OR REPLACE PROCEDURE addstud IS BEGIN END addstud; /*此处的过程名add是可选的,写上较好,

15、与块开始 的 CREATE 相对应 */.采用统一的标识符命名规则。对于诸如变量名、子程序名、触发器名等数 据库对象命名时,应尽量能表示其功能用途或含义。.对于过程性语句与程序块采用缩进书写风格,会使得程序结构清晰、层次 分明、易阅读。.采用统一的字母大小写。尽管PL/SQL程序中不区分大小写,但是采用统 一的字母大小写(如前文叙述的大小写约定)将在很大程度上提高程序的可阅 读性。. 加注释。.一条语句分多行书写,不让其自动分行。 这方面的内容大家都已很熟悉,不再详述了。总之,良好的程序设计风格,可以在多个方面提高系统的性能,提高开发 效率,很值得我们在工作中给以重视。0racle8中用户名、

16、表名、列名、索引名可以用中文命名吗?软件环境:1、Windows NT4.0+ORACLE 8.0.42、ORACLE 安装路径为: C:ORANT 解释说明:可以,例如:SQL create user 用户 1 identified by 密码;SQL grant connect,resource to 用户 1;SQL connect 用户 1/密码SQL create table 表 1(列 1 number,列 2 date);SQL create index 索引1 on 表 1(列 1);SQL drop index 索引 1;SQL drop table 表 1;4Oracle中

17、如何实现某一字段自动增加1?软件环境:1、Windows NT4.0+ORACLE 8.0.42、ORACLE 安装路径为: C:ORANT 实现方法:建立一个最小为1,最大为999999999的一个序列号会自动循环的序列create sequence 序列名increment by 1start with 1maxvalue 999999999cycle;当向表中插入数据时,SQL语句写法如下:SQL insert into 表名 values(序列名.nextval,列 1 值,列 2 值);5SQL(S true tu red Query Language )语句分哪几类? 系统环境:1

18、、数据库: Oraele 8i R3 (8.1.7) for NT 企业版 说明: DDL、数据定义语言:crea te、alt er、drop、trunca te (创建、 修改结构、删除、截断)(其他: rename) DML、数据操纵语言:insert、delete、select、update (增、 删、查、改) DCL、数据控制语言:grant、revoke (授权、回收)、set role 事务控制:comm it、rollback、savepoi nt (其他:lock t able、 set constraint(s)、 set transaction) 审计控制: audit

19、、 noaudit 系统控制: alter system 会话控制: alter session其他语句:comment (添加注释)、explain plan、analyze (收 集统计)、 validate、 call6SQL*PLUS常用命令列表软件环境:1、Windows 98 第二版2、Oracle 数据库版本为: Personal Oracle7 Release7.3.4.0.03、Oracle 安装路径为: C:ORAWIN95命令列表:假设当前执行命令为:select * from tab;(a)ppend添加文本到缓冲区当前行尾a order bytname 结果:sele

20、ct * from tab order by tname;(注:a后面跟2个空格)(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname 结果:select tname from tab;(c)hange/text 结果:select del del n(i)nput 文本(l)ist(l)ist n(l)ist m n run从当前行删除文本tname fromc/tab文件名删除当前行 删除第n行 在当前行之后添加一行显示缓冲区中所有行 显示缓冲区中第 n 行 显示缓冲区中 m 到 n 行 执行当前缓冲区的命令 执行当前缓冲区的命令 执行当前缓冲区的命令 运行

21、调入内存的sql文件,如:SQL edit s回车如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件, 在其中输入“select * from tab;,存盘退出。SQL s spool aSQL spool正假脱机到 A.LST SQL spool off SQL spool 当前无假脱机exit退出 SQL*PLUSdesc 表名显示表的结构show user显示当前连接用户show error显示错误show all显示所有 68 个系统变量值edit打开默认编辑器, Windows 系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文

22、件中进 行编辑 edit文件名把当前目录中指定的.sql文件调入编辑器进行编辑 clear screen 清空当前屏幕显示7SQL*Plus系统环境变量有哪些?如何修改?软件环境:1、Windows NT4.0+ORACLE 8.0.42、ORACLE 安装路径为: C:ORANT 实现方法: show 和 set 命令是两条用于维护 SQL*Plus 系统变量的命令 SQL show all-查看所有 68个系统变量值 SQL show user-显示当前连接用户 SQL show error-显示错误 SQL set heading off-禁止输出列标题,默认值为 ONSQL set f

23、eedback off-禁止显示最后一行的计数反馈信息,默认值为对 6个或更多的记录,回送 ONSQL set timing on- 默认为 OFF ,设置查询耗时,可用来估计 SQL 语句的执行时间,测试性能SQL set sqlprompt SQL - 设置默认提示符,默认值就是SQL SQL set linesize 1000-设置屏幕显示行宽,默认 100SQL set autocommit ON-设置是否自动提交,默认为 OFFSQL set pause on-默认为 OFF,设置暂停,会使屏幕显示停止,等待按下 ENTER 键,再显示下一页SQL set arraysize 1-默

24、认为 15SQL set long 1000-默认为 80说明:long值默认为80,设置1000是为了显示更多的内容,因为很多 数据字典视图中用到了 long数据类型,如:SQL desc user_views列名可空值否类型VIEW_NAMENOT NULL VARCHAR2(30)TEXT_LENGTHNUMBERTEXTLONGSQL define a =20000101 12:01:01-定义局部变量,如果想用一个类似在各种显示中所包括的回车那样的常 量,-可以用define 命令来设置SQL select &a from dual;原值 1: select &a from dual新值 1: select 20000101 12:01:01 from dual2000010112:01:01 20000101 12:01:01

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!