搜档网
当前位置:搜档网 › PLSQL学习笔记

PLSQL学习笔记

PLSQL学习笔记
PLSQL学习笔记

PL/SQL学习笔记

PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL 基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序。

PL/SQL的优点

从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便利性,那么你很难想象ORACLE缺了PL/SQL的情形。PL/SQL不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL 程序块。当PL/SQL程序块在PL/SQL引擎处理时,ORACLE服务器中的SQL语句执行器处理pl/sql程序块中的SQL语句。

PL/SQL的优点如下:

.PL/SQL是一种高性能的基于事务处理的语言,能运行在任何ORACLE环境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。

.PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型

.PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL 命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。

.可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。

.PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都是非常便利的

.对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤。

PL/SQL块结构

PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL程序包含了一个或多个逻辑块,每个块都可以划分为三个部分。与其他语言相同,变量在使用之前必须声明,PL/SQL提供了独立的专门用于处理异常的部分,下面描述了PL/SQL块的不同部分:

声明部分(Declaration section)

声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字DECLARE开始,如

果不需要声明变量或常量,那么可以忽略这一部分;需要说明的是游标的声明也在这一部分。

执行部分(Executable section)

执行部分是PL/SQL块中的指令部分,由关键字BEGIN开始,所有的可执行语句都放在这一部分,其他的PL/SQL块也可以放在这一部分。

异常处理部分(Exception section)

这一部分是可选的,在这一部分中处理异常或错误,对异常处理的详细讨论我们在后面进行。

PL/SQL块语法

[DECLARE]

---declaration statements

BEGIN

---executable statements

[EXCEPTION]

---exception statements

END

PL/SQL块中的每一条语句都必须以分号结束,SQL语句可以使多行的,但分号表示该语句的结束。一行中可以有多条SQL语句,他们之间以分号分隔。每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。注释由--标示。

PL/SQL块的命名和匿名

PL/SQL程序块可以是一个命名的程序块也可以是一个匿名程序块。匿名程序块可以用在服务器端也可以用在客户端。

命名程序块可以出现在其他PL/SQL程序块的声明部分,这方面比较明显的是子程序,子程序可以在执行部分引用,也可以在异常处理部分引用。

PL/SQL程序块可背独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。ORACLE提供了四种类型的可存储的程序:

.函数

.过程

.包

.触发器

函数

函数是命名了的、存储在数据库中的PL/SQL程序块。函数接受零个或多个输入参数,有一个返回值,返回值的数据类型在创建函数时定义。定义函数的语法如下:

FUNCTION name[(parameter[,parameter,...])]RETURN datatypes IS

[local declarations]

BEGIN

execute statements

[EXCEPTION

exception handlers]

END[name]

过程

存储过程是一个PL/SQL程序块,接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT),与函数不同,存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用,定义存储过程的语法如下:

PROCEDURE name[(parameter[,parameter,...])]IS

[local declarations]

BEGIN

execute statements

[EXCEPTION

exception handlers]

END[name]

包(package)

包其实就是被组合在一起的相关对象的集合,当包中任何函数或存储过程被调用,包就被加载入内存中,包中的任何函数或存储过程的子程序访问速度将大大加快。

包由两个部分组成:规范和包主体(body),规范描述变量、常量、游标、和子程序,包体完全定义子程序和游标。

触发器(trigger)

触发器与一个表或数据库事件联系在一起的,当一个触发器事件发生时,定义在表上的触发器被触发。

变量和常量

变量存放在内存中以获得值,能被PL/SQL块引用。你可以把变量想象成一个可储藏东西的容器,容器内的东西是可以改变的。

声明变量

变量一般都在PL/SQL块的声明部分声明,PL/SQL是一种强壮的类型语言,这就是说在引用变量前必须首先声明,要在执行或异常处理部分使用变量,那么变量必须首先在声明部分进行声明。

声明变量的语法如下:

Variable_name[CONSTANT]databyte[NOT NULL][:=|DEFAULT expression]

注意:可以在声明变量的同时给变量强制性的加上NOT NULL约束条件,此时变量在初始化时必须赋值。

给变量赋值

给变量赋值有两种方式:

.直接给变量赋值

X:=200;

Y=Y+(X*20);

.通过SQL SELECT INTO或FETCH INTO给变量赋值

SELECT SUM(SALARY),SUM(SALARY*0.1)

INTO TOTAL_SALARY,TATAL_COMMISSION

FROM EMPLOYEE

WHERE DEPT=10;

常量

常量与变量相似,但常量的值在程序内部不能改变,常量的值在定义时赋予,,他的声明方式与变量相似,但必须包括关键字CONSTANT。常量和变量都可被定义为SQL和用户定义的数据类型。

ZERO_VALUE CONSTANT NUMBER:=0;

这个语句定了一个名叫ZERO_VALUE、数据类型是NUMBER、值为0的常量。

标量(scalar)数据类型

标量(scalar)数据类型没有内部组件,他们大致可分为以下四类:

.number

.character

.date/time

.boolean

表1显示了数字数据类型;表2显示了字符数据类型;表3显示了日期和布尔数据类型。

表1Scalar Types:Numeric

Datatype Range Subtypes description

BINARY_INTEGER-214748-2147483647NATURAL

NATURAL

NPOSITIVE

POSITIVEN

SIGNTYPE 用于存储单字节整数。

要求存储长度低于NUMBER值。

用于限制范围的子类型(SUBTYPE): NATURAL:用于非负数

POSITIVE:只用于正数NATURALN:只用于非负数和非NULL值POSITIVEN:只用于正数,不能用于NULL 值

SIGNTYPE:只有值:-1、0或1.

NUMBER 1.0E-130-9.99E125DEC

DECIMAL

DOUBLE

PRECISION

FLOAT

INTEGERIC

INT

NUMERIC

REAL

SMALLINT 存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法:

number[([,])]。

缺省的精度是38,scale是0.

PLS_INTEGER-2147483647-2147483647与BINARY_INTEGER基本相同,但采用机器运算时,PLS_INTEGER提供更好的性能。

表2字符数据类型

datatype rang subtype description

CHAR 最大长度32767字

CHARACTER存储定长字符串,如果长度没有确定,缺省是1

LONG 最大长度

2147483647字节

存储可变长度字符串

RAW 最大长度32767字

用于存储二进制数据和字节字符串,当在两个数据库

之间进行传递时,RAW数据不在字符集之间进行转

换。

LONGRAW最大长度与LONG数据类型相似,同样他也不能在字符集之

2147483647间进行转换。

ROWID18个字节与数据库ROWID伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。

VARCHAR2最大长度32767字

STRINGVARCHAR

与VARCHAR数据类型相似,存储可变长度的字符

串。声明方法与VARCHAR相同

表3DATE和BOOLEAN

datatype range description

BOOLEAN TRUE/FALSE存储逻辑值TRUE或FALSE,无参数

DATE01/01/4712BC存储固定长的日期和时间值,日期值中包含时间LOB数据类型

LOB(大对象,Large object)数据类型用于存储类似图像,声音这样的大型数据对象,LOB数据对象可以是二进制数据也可以是字符数据,其最大长度不超过4G。LOB数据类型支持任意访问方式,LONG只支持顺序访问方式。LOB存储在一个单独的位置上,同时一个"LOB定位符"(LOB locator)存储在原始的表中,该定位符是一个指向实际数据的指针。在PL/SQL中操作LOB数据对象使用ORACLE提供的包DBMS_LOB.LOB数据类型可分为以下四类:

.BFILE

.BLOB

.CLOB

.NCLOB

操作符

与其他程序设计语言相同,PL/SQL有一系列操作符。操作符分为下面几类:

.算术操作符

.关系操作符

.比较操作符

.逻辑操作符

算术操作符如表4所示

operator operation

+加

-减

/除

*乘

**乘方

关系操作符主要用于条件判断语句或用于where子串中,关系操作符检查条件和结果是否为true或false,表5是PL/SQL中的关系操作符

operator operation

<小于操作符

<=小于或等于操作符

>大于操作符

>=大于或等于操作符

=等于操作符

!=不等于操作符

<>不等于操作符

:=赋值操作符

表6显示的是比较操作符

operator operation

IS NULL如果操作数为NULL返回TRUE

LIKE比较字符串值

BETWEEN验证值是否在范围之内

IN验证操作数在设定的一系列值中

表7.8显示的是逻辑操作符

operator operation

AND两个条件都必须满足

OR只要满足两个条件中的一个

NOT取反

执行部分

执行部分包含了所有的语句和表达式,执行部分以关键字BEGIN开始,以关键字EXCEPTION结束,如果EXCEPTION不存在,那么将以关键字END结束。分号分隔每一条语句,使用赋值操作符:=或SELECT INTO或FETCH INTO给每个变量赋值,执行部分的错误将在异常处理部分解决,在执行部分中可以使用另一个PL/SQL程序块,这种程序块被称为嵌套块

所有的SQL数据操作语句都可以用于执行部分,PL/SQL块不能再屏幕上显示SELECT

语句的输出。SELECT语句必须包括一个INTO子串或者是游标的一部分,执行部分使用的变量和常量必须首先在声明部分声明,执行部分必须至少包括一条可执行语句,NULL是一条合法的可执行语句,事物控制语句COMMIT和ROLLBACK可以在执行部分使用,数据定义语言(Data Definition language)不能在执行部分中使用,DDL语句与EXECUTE IMMEDIATE一起使用或者是DBMS_SQL调用。

执行一个PL/SQL块

SQL*PLUS中匿名的PL/SQL块的执行是在PL/SQL块后输入/来执行,如下面的例子所示:

declare

v_comm_percent constant number:=10;

begin

update emp

set comm=sal*v_comm_percent

where deptno=10;

end

SQL>/

PL/SQL procedure successfully completed.

SQL>

命名的程序与匿名程序的执行不同,执行命名的程序块必须使用execute关键字:

create or replace procedure update_commission

(v_dept in number,v_pervent in number default10)is

begin

update emp

set comm=sal*v_percent

where deptno=v_dept;

end

SQL>/

Procedure created

SQL>execute update_commission(10,15);

PL/SQL procedure successfully completed.

SQL>

如果在另一个命名程序块或匿名程序块中执行这个程序,那么就不需要EXECUTE关进字。

declare

v_dept number;

begin

select a.deptno

into v_dept

from emp a

where job='PRESIDENT'

update_commission(v_dept);

end

SQL>/

PL/SQL procedure successfully completed

SQL>

控制结构

控制结构控制PL/SQL程序流程的代码行,PL/SQL支持条件控制和循环控制结构。

语法和用途

IF..THEN

语法:

IF condition THEN

Statements1;

Statements2;

....

END IF

IF语句判断条件condition是否为TRUE,如果是,则执行THEN后面的语句,如果condition为false或NULL则跳过THEN到END IF之间的语句,执行END IF后面的语句。

IF..THEN...ELSE

语法:

IF condition THEN

Statements1;

Statements2;

....

ELSE

Statements1;

Statements2;

....

END IF

如果条件condition为TRUE,则执行THEN到ELSE之间的语句,否则执行ELSE到END IF之间的语句。

IF可以嵌套,可以在IF或IF..ELSE语句中使用IF或IF..ELSE语句。

if(a>b)and(a>c)then

g:=a;

else

g:=b;

if c>g then

g:=c;

end if

end if

IF..THEN..ELSIF

语法:

IF condition1THEN

statement1;

ELSIF condition2THEN

statement2;

ELSIF condition3THEN

statement3;

ELSE

statement4;

END IF;

statement5;

如果条件condition1为TRUE则执行statement1,然后执行statement5,否则判断condition2是否为TRUE,若为TRUE则执行statement2,然后执行statement5,对于condition3也是相同的,如果condition1,condition2,condition3都不成立,那么将执行statement4,然后执行statement5。

循环控制

循环控制的基本形式是LOOP语句,LOOP和END LOOP之间的语句将无限次的执行。LOOP语句的语法如下:

LOOP

statements;

END LOOP

LOOP和END LOOP之间的语句无限次的执行显然是不行的,那么在使用LOOP语句时必须使用EXIT语句,强制循环结束,例如:

X:=100;

LOOP

X:=X+10;

IF X>1000THEN

EXIT;

END IF

END LOOP;

Y:=X;

此时Y的值是1010.

EXIT WHEN语句将结束循环,如果条件为TRUE,则结束循环。

X:=100;

LOOP

X:=X+10;

EXIT WHEN X>1000;

X:=X+10;

END LOOP;

Y:=X;

WHILE..LOOP

WHILE..LOOP有一个条件与循环相联系,如果条件为TRUE,则执行循环体内的语句,如果结果为FALSE,则结束循环。

X:=100;

WHILE X<=1000LOOP

X:=X+10;

END LOOP;

Y=X;

FOR...LOOP

语法:

FOR counter IN[REVERSE]start_range....end_range LOOP

statements;

END LOOP;

LOOP和WHILE循环的循环次数都是不确定的,FOR循环的循环次数是固定的,counter是一个隐式声明的变量,他的初始值是start_range,第二个值是start_range+1,直到end_range,如果start_range等于end_range,那么循环将执行一次。如果使用了REVERSE 关键字,那么范围将是一个降序。

X:=100;

FOR v_counter in1..10loop

x:=x+10;

end loop

y:=x;

如果要退出for循环可以使用EXIT语句。

标签

用户可以使用标签使程序获得更好的可读性。程序块或循环都可以被标记。标签的形式是<>。

标记程序块

<>

[DECLARE]

.........

BEGIN

........

[EXCEPTION]

.......

END label_name

标记循环

<>

LOOP

.........

<>

loop

..........

<>

loop

....

EXIT outer_loop WHEN v_condition=0;

end loop innermost_loop;

..........

END LOOP inner_loop;

END LOOP outer_loop;

GOTO语句

语法:

GOTO LABEL;

执行GOTO语句时,控制会立即转到由标签标记的语句。PL/SQL中对GOTO语句有一些限制,对于块、循环、IF语句而言,从外层跳转到内层是非法的。

X:=100;

FOR V_COUNTER IN1..10LOOP

IF V_COUNTER=4THEN

GOTO end_of_loop

END IF

X:=X+10;

<>

NULL

END LOOP

Y:=X;

注意:NULL是一个合法的可执行语句。

嵌套

程序块的内部可以有另一个程序块这种情况称为嵌套。嵌套要注意的是变量,定义在最外部程序块中的变量可以在所有子块中使用,如果在子块中定义了与外部程序块变量相同的变量名,在执行子块时将使用子块中定义的变量。子块中定义的变量不能被父块引用。同样GOTO语句不能由父块跳转道子块中,反之则是合法的。

《OUTER BLOCK》

DECLARE

A_NUMBER INTEGER;

B_NUMBER INTEGER;

BEGIN

--A_NUMBER and B_NUMBER are available here

<>

DECLARE

C_NUMBER INTEGER

B_NUMBER NUMBER(20)

BEGIN

C_NUMBER:=A_NUMBER;

C_NUMBER=OUTER_BLOCK.B_NUMBER;

END SUB_BLOCK;

END OUT_BLOCK;

小结

我们在这篇文章中介绍了PL/SQL的基础语法以及如何使用PL/SQL语言设计和运行PL/SQL程序块,并将PL/SQL程序整合到Oracle服务器中,虽然PL/SQL程序作为功能块嵌入Oracle数据库中,但PL/SQL与ORACLE数据库的紧密结合使得越来越多的Oracle 数据库管理员和开发人员开始使用PL/SQL。

Plsql学习心得

Plsql学习心得 十一、包package 41 11.1什么是package 41 11.2包的组成41 11.3包的优点41 11.4 package声明的语法41 11.5 package body声明的语法42 11.6编译包和包体42 11.7案例42 十二、触发器trigger 44 12.1面临问题44 12.2 DML触发器的组成44 12.3 DML触发器的类型44 12.4 DML触发器的触发顺序44 12.5 DML行级触发器44 12.6 :OLD和:NEW 44 12.7触发器的重新编译46 12.8触发器的状态46 十三、其他注意事项47 13.1 PL/SQL的特点47 13.2写PL/SQL的好处47 13.3命名建议47 13.4搞清楚如下内容47 13.5保证所有对象的状态都是valid 47 13.6 declare中都可声明什么47 13.7数据库对象47 十一、包package 11.1什么是package 1)package(包)是一个可以将相关对象存储在一起的PL/SQL结构。package包含了两个分离的组成部分:specification(package的声明,即包声明)和body(声明中的程序实现,即包体)。每个部分都单独被存储在数据字典中。包声明是一个操作接口,对应用来说是可见的。 2)包体是黑盒,对应用来说隐藏了实现细节。

11.2包的组成 将相关的若干程序单元组织到一块,用一个包来标识这个集合,包中可以包含以下的程序单元: 程序单元描述 过程(procedure)带有参数的程序 函数(function)带有参数的程序,该程序有返回值 变量(variable)用于存储变化值的存储单元 游标(cursor)定义一条SQL语句 类型(type)定义复合类型(record、collection) 常量(constant)定义常量 异常(exception)标识异常 11.3包的优点 1)方便对存储过程和函数的组织: ①将相关的过程和函数组织在一起。②在一个用户环境中解决命名的冲突问题。 2)方便对存储过程和函数的管理: ①在不改变包的声明定义是可以改变包体的实现的。②限制过程、函数的依赖性。 ③在包体未实现时,其他程序中可以调用包中的对象,对自己的程序进行编译,可以并行地对程序开发。 3)方便对存储过程和函数的安全性管理: ①整个包的访问权限只需一次性授权。②区分公用过程和私有过程。 4)改善性能: ①在包被首次调用时作为一个整体全部调入内存。②减少多次调用时磁盘I/O次数。 11.4 package声明的语法 create or replace package pkg_name {is|as} 公共变量(variable)的定义|公共类型(type)的定义| 公共异常(Exception)的定义|公共游标(cursor)的定义| 函数说明|过程说明 end; 11.5 package body声明的语法

PLSQL应用程序开发

Oracle PL/SQL ProGramming 学习笔记 Author:丁俊 目录 序言-特点介绍 (2) PART1 用PL/SQL设计程序 (4) 第一章plsql在10g中的新特性 (4) 第二章建立和运行plsql程序 (6) 第三章plsql语言基本原理 (9) PART2 PL/SQL应用程序结构 (12) 第四章条件和序列控制 (12) 第五章循环控制 (19) 第六章异常处理 (23) PART3 PL/SQL程序应用 (25) 第七章用数据来工作 (25) 第八章Strings (27) 第九章Numbers (31) 第十章Records (36) 第十一章集合类型 (38)

序言-特点介绍 1-1 pl/sql可以做的工作: 1.用pl/sql的存储过程和数据库触发器实现至关重要的商业规则。 2.在数据库中生成和完全地管理xml文档。 3.web页面与数据库的结合。 4.实现自动化的数据库管理,用pl/sql建立安全级别来管理回滚段。 1-2 pl/sql特点: 从oracle 6开始,模仿Ada语言的实现,Ada语言强调数据抽象,信息隐藏,还有其他现代语言设计中的关键策略。pl/sql做为3GL语言具有面向过程语言的许多重要特性,如: 1.丰富的数据类型,从number到string,从复杂的record到table,以及集合类型等。 2.显示的可读性强的块状结构,可以增强我们维护plsql程序。 3.条件,循环语句,包括if---else,3个loop循环(简单loop,for...loop,while...loop)。 4.完整地异常处理机制。 5.命名的,可重用的代码,如包,函数,过程,触发器,对象类型等。 6.plsql是sql的有力补充,与sql之间的联系紧密,整合性强。 7.plsql是oracle数据库产品的内置语言,不是一个孤立的语言。 8.是一种高性能的语言。 9.pl/sql运行过程 Plsql引擎可以接受应用程序的程序,然后将sql部分和plsql部分分离出来,分别交给sql 引擎和plsql引擎执行,提高执行效率。 10.plsql可以每次发送成组的sql语句到服务器端执行,不像sql每次只能发送一句,减少网络负载量,提高效率,而且在oracle的相关工具中,如oracle form中,plsql也得到增强。 11.总结一句话:plsql有应用程序的特性,是sql的有力补充,具有流程控制,申明和使用变量,plsql能运行在任何具有oracle的环境中。

PLSQL developer操作入门级知识讲解

P L S Q L d e v e l o p e r操 作入门级

目录 一 .登录PL/SQL Developer (3) 二 .登录后的基本设置 (4) 2.1 过滤显示 (4) 2.2登录界面的设置 (5) 三 .基本操作 (8) 2.1表的基本操作 (8) 2.1.1 SQL语句建表 (8) 2.1.2 如何在PL\SQL Developer里执行SQL语句 (9) 2.1.3 给表设置主键 (10) 2.1.4 编辑表的字段 (14) 2.1.5 输入条件查询 (15) 2.1.6删除表 (16) 2.1.7编辑表的数据 (17) 2.2视图(View) (19) 2.2.1概念 (19) 2.2.2创建视图 (19) 2.3其它数据库对象 (19) 2.4数据库对象的导出\导入 (20) 2.4.1表的导出 (20) 2.4.2 Dmp导出参数介绍 (23) 2.4.2 表的导入 (24) 四 .其它操作 (27) 1.SQL美化 (27)

一 .登录PL/SQL Developer 1.1 登录PL/SQL Devel oper (1)登录4要素 a. 用户名(username) b. 密码(password) c. 数据库服务名(Database) d. 连接身份(Connect as) (2)要素说明 ●用户名(username)和密码(password):即数据库登录用户和登录密码,由 数据库管理员提供 ●数据库服务名(Database):数据库服务名可在下拉列表中选择(由 tnsnames.ora文件中描述的名字来确定),前提是通过Net Configuration Assistant来配置,或者直接修改tnsnames.ora文件。 ●连接身份(Connect as):若为一般用户,默认为normal即可;若为sys或

oracle学习笔记

●PLSQL控制台输出语句 SET serveroutput ON; --打开控制台输出服务 dbms_output.put_line('values2='||var_val); --输出语句 ●PLSQL动态变量 var_str := '&input'; ●创建表空间和用户 --创建表空间 CREATE TABLESPACE "BCPBS" LOGGING DATAFILE 'D:\app\E430\oradata\orcl\BCPBS_01.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED, 'D:\app\E430\oradata\orcl\BCPBS_02.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; --建立用户 CREATE USER "BCPBS" PROFILE "DEFAULT" IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "BCPBS"; GRANT "DBA" TO "BCPBS"; GRANT "RESOURCE" TO "BCPBS"; ●删除表空间和用户 drop user bcpbs cascade ; drop tablespace BCPBS including contents and datafiles cascade constraints ; ●自定义函数 CREATE OR REPLACE FUNCTION fun_level_value(level_value number) RETURN number IS return_value number:=null; BEGIN CASE level_value WHEN 0 THEN return_value:='0'; WHEN 1 THEN return_value:='1'; WHEN 2 THEN return_value:='2'; WHEN 3 THEN return_value:='3'; WHEN 6 THEN return_value:='8'; ELSE

实验1 ORACLE基本操作-使用SQL DEVELOPER

实验1 ORACLE 基本操作 实验目的:掌握ORACLE的连接,了解ORACLE的数据库结构;熟悉PLSQL/Developer图形化管理工具的使用。 实验内容: 一、机房环境的准备工作(每次重新启动机器后必做的工作) 为了能启动ORACLE并利用图形化的管理工具PLSQL/Developer对ORACLE数据库进行操作,在机房的机器中要先做如下的准备工作: 1、查看自己的机器名 方法:右击“我的电脑”→“属性”,找到并记住自己的计算机名 2、修改监听程序 方法:“开始”→“所有程序”→“Oracle-OraDb11g_home1”→“配置和移植工具”→“Net Manager”,在弹出的窗口中展开目录至最后的“LISTENER”,在右侧的窗口中将主机名改成自己的主机名→单击窗口右上角的红色叉号按钮关闭→在弹出的对话框中选择“保存”。

3、启动服务 右击“我的电脑”→“管理”→“服务和应用程序”→“服务” 找到并按顺序启动如下两个服务: 。 启动顺序:先启动,再启动 启动方法:右击服务名选择“启动” 注:当在自己的机器上使用时,这两个服务若显示已启动则不用重新再启动。 二、运行SQL Developer,建立与ORACLE数据库的连接 1、运行Oracle自带的SQL Developer软件 方法:“开始”→“所有程序”→“Oracle-OraDb11g_home1”→“应用程序开发”→“SQL Developer” 2、以system用户建立与数据库的连接 在SQL Developer窗口中选中“连接”→点击“新建”按钮,

在窗口中输入以下信息,使其以system用户与数据库进行连接 注: 连接名:可以随便起 用户名:system,若以其他用户身份登录,可以在这里更改用户名 密码:123456 SID:orcl 点击“测试”按钮,若成功则在左下角显示“状态:成功”,若有错误,则会出现红色的提示信息,按信息进行问题查找。 最后点击“连接”按钮进行连接

oracle plsql宝典学习笔记

2015.12.28 1、约束的类型: 主键约束、外键约束、唯一约束、检查约束、非空约束是Oracle数据表的5个约束。 主键约束:用来唯一标识表中一个列,一个表中的主键约束只能有一个,但是可以在一个主键约束中包括多个列,也称为联合主键。 外键约束:用来约束两个表中列之间的关系。 唯一约束:用来唯一标识表中的列。与主键约束不同的是,在一个数据表中可以有多个唯一约束。 检查约束:用来约束表中列的输入值的范围,比如在输入性别时,要求在数据库中只能输入男或女,就可以使用检查约束来约束该列。 非空约束:约束该列一定要输入值。 2、使用外键约束,应注意以下几个方面问题 如果在foreign key约束的列中输入非NULL值,则此值必须在被引用列中存在;否则,将返回违反外键约束的错误信息。 foreign key约束仅能引用位于同一个服务器上同一个数据库中的表,跨数据库的引用完整性必须通过触发器实现。 foreign key约束可以引用同一个表中的其他列,此行为称为自引用。 列级foreign key约束的references子句只能列出一个引用列,此列的数据类型必须与定义约束列的数据类型相同。 表级foreign key约束的references子句中引用列的数目必须与约束列列表中的列数相同,每个引用列的数据类型也必须与列表中相应列的数据类型相同。在临时表中,不能使用外键约束。 2015.12.30 1、虽然使用DELETE语句和TRUNCATE TABLE语句都能够删除表中的所有数据,但是使用TRUNCATE TABLE语句比使用DELETE语句的执行效率要高。这是因为:使用DELETE语句,系统将一次一行地处理要删除的表中的记录,在从表中删除行之前,在事务处理日志中记录相关的删除操作和删除行中的列值,以便在删除失败时,可以使用事务处理日志来恢复数据。 使用TRUNCATE TABLE语句则一次性完成删除与表相关的所有数据页的操作。另外,TRUNCATE TABLE语句并不更新事务处理日志。因此,使用TRUNCATE TABLE 语句从表中删除行后,将不能用ROLLBACK命令取消行的删除操作。 2016.1.1 1、在实际应用中,使用NOT运算符时,经常忽视其对NULL值的处理问题。要时刻牢记一点,NOT NULL的结果仍为NULL。 2、X IS NULL不可以写成X=NULL;除了IS[NOT] NULL之外,空值不满足任何查找条件;如果NULL参与算术运算,则该算术表达式的值为NULL;如果NULL参与聚集运算,则除count(*)之外其他聚集函数都忽略NULL。 2016.1.2 1、在默认情况下,ORDER BY按升序进行排列,即默认使用的是ASC关键词。如果用户特别要求按降序进行排列,则必须使用DESC关键词。 ORDER BY子句一定要放在所有子句的最后(无论包含多少子句)。 对于时间、数值类型的字段排序,其排序规则就是按照时间的早晚、数值的大小进行的;对于字符型的字段排序,则是依照其ASCII码的先后顺序进行的。

windows 系统应用与维护

Ⅱ戊辰B:windows 系统应用与维护(5%) 4+13+7 单选; 1.Windows将整个计算机显示屏幕看作是()。C A.工作台B.窗口C.桌面D.背景 2.Excel中的工作簿是(D)。 A.一本书 B.一种记录 C.一张表 D. 由工作表组成的文档 3.下面对E-Mail的描述中,只有(d )是正确的。 (A)不能给自己发送E-Mailb (B)一封E-Mail只能发给一个人 (C)不能将E-Mail转发给他人(D)一封E-Mail能发送给多个人 4.从E-Mail服务器中取回来的邮件,通常都保存在客户机的( b)里。 (A)发件箱(B)收件箱(C)已发送邮件箱(D)已删除邮件箱 5、我行网银系统共由多少台设备组成(B) A、30 B、66 C、64 D、13 6、我行网银系统由多少种硬件设备组成(A) A、18 B、17 C、16 D、15 7、我行网银系统网络结构共分多少个区域(C) A、4 B、5 C、7 D、6 8、我行网银系统设计最大寿命为多少年(A) A、8 B、7 C、6 D、5 9、我行网银系统防止暴力破解密码的措施为(A) A、输入5次密码错误以后,系统自动冻结账号一天

B、访问控制列表 C、将账户删除 D、无保护措施 10.以下哪个软件不是信管系统日常开发维护时的常用软件( D ) A.tomcat B.plsql C.myeclipse D.ESET 11.以下哪个是信管系统的正确地址( B ) A.http://16.3.1.75:7001/console B.http://16.3.1.75/credit C.http://16.3.1.75/ICRWeb D.http://16.3.1.75/ECRWeb 12.以下哪个是企业征信系统的正确地址( D ) A.http://16.3.1.75:7001/console B.http://16.3.1.75/credit C.http://16.3.1.75/ICRWeb D.http://16.3.1.75/ECRWeb 13.以下哪个是个人征信系统的正确地址( D ) A.http://16.3.1.75:7001/console B.http://16.3.1.75/credit C.http://16.3.1.75/ICRWeb D.http://16.3.1.75/ECRWeb 14.关于信管系统浏览器配置说法错误的是( D ) A.需要安装ActiveX控件 B.启用下载未签名的ActiveX控件项 C.禁用弹出窗口阻止程序项,并要把网址添加到可信站点中 D.以上说法都是错误的 15.Windows中安装相应的应用软件,通过控制面板中的( C )控件完成。 A、系统B、添加新硬件 C、添加/删除程序D、多媒体 16.在WINDOWSXP中,若鼠标指针变成“I”形状,则表示( D ) A、当前系统正在访问磁盘B、可以改变窗口的大小 C、可以改变窗口的位置D、鼠标指针出现处可以接收键盘的输入 17.不能利用WINDOWSXP资源管理器直接完成的任务是( C ) A、删除文件B、新建文件夹C、对硬盘分区D、复制文件 18.在WINDOWS XP中,使用软键盘可以快速的输入各种特殊符号,为了撤消弹出的软键盘,正确的操作是( A ) A、用鼠标左键单击软键盘上的ESC键 B、用鼠标右键单击软键盘上的ESC键 C、用鼠标右键单击中文输入法状态窗口中的软键盘按钮

PLSQL学习简易快速入门

PLSQL学习简易快速入门 课程一 PL/SQL 基本查询与排序 本课重点: 1、写SELECT语句进行数据库查询 2、进行数学运算 3、处理空值 4、使用别名ALIASES 5、连接列 6、在SQL PLUS中编辑缓冲,修改SQL SCRIPTS 7、ORDER BY进行排序输出。 8、使用WHERE 字段。 一、写SQL 命令: 不区分大小写。 SQL 语句用数字分行,在SQL PLUS中被称为缓冲区。 最后以;或 / 结束语句。 也可以用RUN来执行语句 二、例1:SQL> SELECT dept_id, last_name, manager_id FROM s_emp; 2:SQL> SELECT last_name, salary * 12, commission_pct FROM s_emp; 对于数值或日期型的字段,可以进行相应的四则运算,优先级与标准的高级语言相同。 SQL> SELECT last_name, salary, 12 * (salary + 100) FROM s_emp; 三、列的别名ALIASES: 计算的时候特别有用; 紧跟着列名,或在列名与别名之间加“AS”; 如果别名中含有SPACE,特殊字符,或大小写,要用双引号引起。 例(因字体原因,读者请记住:引号为英文双引号Double Quotation): SQL> SELECT last_name, salary, 12 * (salary + 100) ”Annual Salary” FROM s_emp;

四、连接符号:|| 连接不同的列或连接字符串 使结果成为一个有意义的短语: SQL> SELECT first_name || ’’ || last_name || ’, ’|| title ”Employees” FROM s_emp SQL> select divid ||' '|| divname from pub_t_division_test where superid='001' 效果如下图: 五、管理NULL值: SQL> SELECT last_name, title, salary * NVL(commission_pct,0)/100 COMM FROM s_emp; 此函数使NULL转化为有意义的一个值,相当于替换NULL。 select divid,divname,NVL(addr,0) from pub_t_division_test where superid='001' 效果如下图: 六、SQL PLUS的基本内容,请参考 七、ORDER BY 操作: 与其他SQL92标准数据库相似,排序如: SELECT expr FROM table[ORDER BY {column,expr} [ASC|DESC]]; 从Oracle7 release 7.0.16开始,ORDER BY 可以用别名。 另:通过位置判断排序: SQL> SELECT last_name, salary*12 FROM s_emp ORDER BY 2; select * from pub_t_division_test where superid='001'order by3 这样就避免了再写一次很长的表达式。 另:多列排序: SQL> SELECT last name, dept_id, salary FROM s_emp ORDER BY dept_id, salary DESC; SQL>select * from pub_t_division_test where superid='001' order by 1,3 desc

Oracle常见死锁发生的原因以及解决方法

Oracle常见死锁发生的原因以及解决方法 Oracle常见死锁发生的原因以及解决办法 一,删除和更新之间引起的死锁 造成死锁的原因就是多个线程或进程对同一个资源的争抢或相互依赖。这里列举一个对同一个资源的争抢造成死锁的实例。 Oracle 10g, PL/SQL version 9.2 CREATE TABLE testLock( ID NUMBER, test VARCHAR(100) ) COMMIT INSERT INTO testLock VALUES(1,'test1'); INSERT INTO testLock VALUES(2,'test2'); COMMIT; SELECT * FROM testLock 1. ID TEST 2.---------- ---------------------------------- 3. 1 test1 4. 2 test2 死锁现象的重现: 1)在sql 窗口执行:SELECT * FROM testLock FOR UPDATE; -- 加行级锁并对内容进行修改, 不要提交 2)另开一个command窗口,执行:delete from testLock WHERE ID=1; 此时发生死锁(注意此时要另开一个窗口,不然会提示:POST THE CHANGE RECORD TO THE DATABASE. 点yes 后强制commit):

3)死锁查看: 1.SQL> select https://www.sodocs.net/doc/0a15836052.html,ername,l.object_id, l.session_id,s.serial#, s.lockwait,s.status,s.machine, s.program from v$session s,v$locked_object l where s.sid = l.session_id; USER NAME SESSION_ID SERIAL# LOCKWAIT STATUS MACHINE PROGRAM 2.---------- ---------- ---------- -------- -------- ---------------------- ------------ 3.SYS 146 104 INACTIVE WORKGROUP\J-THINK PLSQLDev.exe 4.SYS 144 145 20834474 ACTIVE WORKGROUP\J-THINK PLSQLDev. exe 字段说明: Username:死锁语句所用的数据库用户; SID: session identifier,session 标示符,session 是通信双方从开始通信到通信结束期间的一个上下文。 SERIAL#: sid 会重用,但是同一个sid被重用时,serial#会增加,不会重复。 Lockwait:可以通过这个字段查询出当前正在等待的锁的相关信息。 Status:用来判断session状态。Active:正执行SQL语句。Inactive:等待操作。Killed:被标注为删除。 Machine:死锁语句所在的机器。 Program:产生死锁的语句主要来自哪个应用程序。 4)查看引起死锁的语句:

ape安装配置手册

A P E X安装简单的说,共分四步:1、安装O r a c l e D B APEX2.2要求Oracle DB版本为9.2.0.3或更高。注意APEX2.2不支持Oracle DB XE,如果你的数据库是Oracle DB XE,就要选用APEX2.1。我这里选用的数据库是Oracle 10.2.0.1,虽然不是目前最高的版本(最高的版本是10.2.0.1的patchset),但是已经包含了很多令人振奋的新特性了。建议 C S D N的朋友们也多使用一些O r a c l e产品的新版本,时刻保持对新技术的敏感度。 O r a c l e D B的免费下载网址为:h t t p://w w w.o r a c l e.c o m/t e c h n o l o g y...r a c l e10g/i n d e x.h t m l 注意:不要用下载的软件从事有任何商业目的的活动。 下载之后开始安装,步骤非常简单。你可以选择在安装的同时创建一个数据库,或者在安装结束后用DBCA 创建一个数据库,最好将数据库的字符集设为AL32UTF8(如果你想让你的数据库支持多种语言,请选用AL32UTF8;否则可以考虑使用一种native本地的字符集,比如ZHS16GBK)。这里我创建了一个service n a m e为t i n a03.c n.o r a c l e.c o m(S I D为t i n a03)的数据库。安装结束后,打开services(服务)窗口,你可以看到里面多了数个oracle的服务,其中包括我们需要的OracleServiceTINA03和OracleOraDb10gTNSListener,其他的服务都可以停掉且设为手动启动。 2、安装O r a c l e H t t p S e r v e r APEX2.2是需要部署到Oracle Http Server上的,它所以能运行主要是依赖于mod_plsql这个模块。下面这三个系列的产品可以满足需要:

精通 oracle 10g plsql 编程-学习笔记

1.PL/SQL综述 本章学习目标,了解如下内容: PL/SQL的功能和作用 PL/SQL 的优点和特征; Oracle 10g、Oracle9i 的PL/SQL新特征 1.1.SQL简介 1.1.1.SQL语言特点 SQL语言采用集合操作方式 1.1. 2.SQL语言分类 ●数据查询语言(SELECT语句):检索数据库数据。 ●数据操纵语言(DML):用于改变数据库数据。包括insert,update和delete三条语句。 ●事务控制语言(TCL):用于维护数据库的一致性,包括commit,rollback和savepoint 三 条语句 ●数据定义语言(DDL):用户建立、修改和删除数据库对象。 ●数据控制语言(DDL):用于执行权限授予和收回操作。包括grant 和revoke两条命令。 1.1.3.SQL 语句编写规则 ●SQL关键字不区分大小写 ●对象名和列名不区分大小写 ●字符值和日期值区分大小写 ●书写格式随意 1.2.PL/SQL简介 1.3.Oracle 10G PL/SQL 新特征 2.PL/SQL开发工具 本章学习目标: 学会使用SQL*PLUS 学会使用PL/SQL developer; 学会使用Procedure Builder。 2.1.SQL*PLUS 在命令行运行SQL*Plus

Sqlplus [username]/[password] [@server] 3.PL/SQL 基础 学习目标: ●了解PL/SQL块的基本结构以及PL/SQL块的分类; ●学会在PL/SQL块中定义和使用变量 ●学会在PL/SQL块中编写可执行语句; ●了解编写PL/SQL代码的指导方针; ●了解Oracle 10g的新特征——新数据类型BINARY_FLOAT 和 BINARY_DOUBLE,以及指定字符串文本的新方法。 3.1.PL/SQL 块简介 3.1.1.PL/SQL块结构 3.1.2.PL/SQL 块分类 匿名块 命名块 子程序 触发器 3.2. 定义并使用变量 3.2.1.标量变量 3.2.2.复合变量 3.2.3.参照变量 3.2. 4.LOB 变量 3.2.5.非PL/SQL 变量

PLSQL学习(一) 基础知识

PLSQL学习(一) 基础知识 很久以前自己整理的PLSQL一些基础知识,翻出来看看都是比较基础的内容,还是放上来好了。参考的资料是《PL/SQL用户指南与参考》中译版,觉得这是一部很不错的入门书,感谢把这本书翻译出来的网友。 1、乘方的不同应用: 在SQL中乘方只能使用函数Power(a,b)来计算 但在PLSQL中可直接使用a**b表示 2、赋值语句Returning: insert into t1 values(90,'SERVICE','BEIJING') Returning rowid,name into row_id,info; 注:只限insert、update、delete一条记录时进行赋值 3、自定义参数——&: 可SQL和PLSQL中均可使用自定义参数,即需要自己输入值的参数 select * from ldcom where comcode=&a andname=&b; PLSQL: declare i int := &a; n int := &b; 4、绑定变量的使用: 可使用绑定变量的办法提高SQL效率 SQL> variable x number ; SQL> exec :x := 8600 ; SQL> select * from ldcom where comcode= :x ; 注:PLSQL中的declare即隐士绑定,无需再申明

可用Print查看绑定变量 SQL> print x; 也可使用查询SQL> select :x from dual; 实际的简单应用: variable x number; declare v_date date; begin for i in1.. 10loop :x := i; select sysdate+:x into v_date from dual; dbms_output.put_line(v_date); end loop; end; / 在execute immediate中的应用: declare v_x t1.num%type; begin execute immediate'update t1 set num=8888 where id=:a returning num into :b' using2returning into v_x; dbms_output.put_line(v_x); end; 注意returning的返回值在动态SQL中的操作格式 5、%TYPE和%ROWTYPE的区别: %TYPE针对某一字段类型(数组也是单一的类型) %ROWTYPE针对某一整表的类型(游标也是整表)

PLSQL怎么执行SQL语句

通过f5查看到的执行计划,其实是pl/sql developer工具内部执行查询 plan_table表然后格式化的结果。 select * from plan_table where statement_id=...。其中 description列描述当前的数据库操作, object owner列表示对象所属用户, object name表示操作的对象, cost列表示当前操作的代价(消耗),这个列基本上就是评价sql语句的优劣,cardinality列表示操作影响的行数, bytes列表示字节数篇二:plsqldeveloper工具使用教程 plsql入门 pl/sql的概述 pl/sql的优势 pl/sql是一种块结构的语言,允许你将业务逻辑封装在一起,这是到目前为止使用pl/sql的最大优势 pl/sql是在服务器上运行,可以与数据库和sql引擎直接进行交互, pl/sql是什么? (procedural language/sql) 是oracle在标准的sql语言上的扩展,pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用列外处理各种错误,这样使得它的功能变得更加强大。 特性: 减少java程序的复杂性 一.过程,函数,触发器是pl/sql编写的 二.过程、函数、触发器是在oracle中 三. pl/sql是非常强大的数据库过程语言 四.过程,函数可以再java程序中调用 为什么学? a) 提高应用程序的运行性能 b) 模块化的设计思想[分页的过程,订单的过程,转账的过程] c) 减少网络传输量(传统的方法,用sql语句传输!现在就只需要调用存储过程) d) 提高安全性(传统sql 可以看到表名字段等…) 不好: 移植性不好,(你写好的存储过程,函数等当我们要换数据库时,这些东西就没用了)开发工具: 1. sqlplus 开发工具 是oracle公司提供的一个工具,这个因为我们在以前介绍过: 2. pl/sql developer开发工具 pl/sql developer是用于开发pl/sql块的集成开发环境(ide) 它是一个独立的产品,而不是oracle的一个附带品, createprocedure sp_pro1//存储过程名字 is begin ---执行部分 insert into mytest values(‘’,’’); end; / 查看错误信息

Oracle11g自带的SQL developer无法打开解决方案

在安装完Oracle Database 11g Release 2数据库,想试一下Oracle自带的SQL Developer 工具,在操作系统菜单的所有程序中找到SQL Developer如下所示,并单击: 结果却提示缺少快捷方式,没找到“SQLDEVELOPER.BAT”,如下所示:

在Oracle的安装目录 D:\DataBaseInstall\Oralce_11g_r2\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\ bin下的确也没找到sqldeveloper.bat文件。网上很多人都说重新下载SQL Developer替换掉安装Oracle时自带的那个。 重新到Oracle官网下载SQL Developer,当前最新版下载地址: https://www.sodocs.net/doc/0a15836052.html,/otn/java/sqldeveloper/sqldeveloper64-3.2.20.09.87-no-jre.zip 将下载下来的sqldeveloper64-3.2.20.09.87-no-jre.zip解压到Oracle安装目录下

这时重新单击操作系统菜单中的“SQL Developer”,看到命令窗口闪一下就消失了。看了一下SQL Developer的“readme.html”文档知道了SQL Developer 3.2支持的Java版本至少要1.6.0_04。

那就下载当前最新JDK安装,在这里我下载的是 jrockit-jdk1.6.0_37-R28.2.5-4.1.0-windows-x64.exe。下载完成后双击出现如下安装界面:

查询oracle表空间路径

ORACLE查看表空间路径、当前用户的表空间等 查看当前用户每个表占用空间的大小: Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name 查看每个表空间占用空间的大小: Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name 查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词,存储过程函数,约束条件)0、表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_role_privs; 查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看用户下所有的表 SQL>select * from user_tables; 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_role_privs; 查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 显示当前会话所具有的权限 SQL>select * from session_privs; 显示指定用户所具有的系统权限

oracle-database-11g-plsql-编程实战笔记

Chap1 DML语句是select 、insert、update、delete和merge DDL语句是create、alter、drop、rename、truncate、comment DCL语句是grant、revoke TCL语句是commit、rollback和savepoint sql16个基本命令——参考书《OCA认证考试指南(IZ0-051)》清华大学出版社 《oracle database sql language reference 11g》有非遵循格式字符串依赖于格式掩码 chap2 2.1.3 关于语句中有多个单引号时处理: 1、 select'It''s a bird,no plan can''t be 'as pharse from dual; 此处两个单引号即为一个单引号 2、只能用q 再加’(语句)’ select q'(It's a bird,no plan can't be)'as pharse from dual; 均输出 PHARSE ---------------------------- It's a bird,no plan can't be 2.1.4 定义变量与申明变量的区别: 定义变量即为变量分配名称并指定数据类型;申明变量首先需要定义变量,然后为其赋值。(赋值也称为初始化) 替代变量前面要加&前缀且若替代变量为字符型时要加两个单引号如’&a’ declare lv_whom varchar2(20);/*lv-whom为申明变量,a为替代变量,a没有变量类型*/ begin lv_whom := '&a'; end; 或者 declare lv_whom varchar2(20); begin lv_whom := &a; end;但是要在输入框中字符加两个单引号 替代变量用define申明,且定义时不可以指定类型,默认为char型 ①Define x=emp; Select * from &x; /*调用要用&,此处不加单引号,解析后即为emp表*/

PLSQL 快捷键设计以及添加快捷键

PL/SQL 快捷键 1 修改Code assistant快捷键 tools->preferences->User Interface -> Key Configuration -> tools/ code assistant 改为自己想要的快捷键 tools -> code assistant 可以查看帮助的快捷键 2 修改Sql 语句大小写 默认pl/sql 没有提供快捷键 选中sql,点击edit --> selection --> Uppercase 当然了也可以按照1来增加快捷键 tools->preferences->User Interface -> Key Configuration --> edit/selection/Uppercase 改为自己想要的快捷键 使用PL/SQL中经常性需要输入select * from 这样类似的语句。能不能配置一个快捷键,比如输入s,直接就显示select * from 呢?显然PL/SQL是支持该功能的。 在PL/SQL的安装目录下面:$:\Program Files\PLSQL Developer\PlugIns 中添加一个文本文件,比如命名为:shortcuts.txt。文本文件中填写如下内容: s = select * from 打开PL/SQL,在Tools->Perferences->Editor中Autoreplaces选择配置的shortcuts文件。如下图:

确定后重启PL/SQL就可以了。在编辑页面,输入s 就会显示select * from 附录:个人编写文件内容: s=select * from ; st = select t.* ,t.rowid from t ; sf = select a.* from a ; d = delet e from where ; u = update a set a. where a. ; w = where ; dbs=dbms_output.put_line('); 应用时,快捷键+回车就可以出现了!

相关主题