站点图标 江湖人士

Oracle数据库游标使用大全

SQL是用于拜候ORACLE数据库的言语,PL/SQL扩展和加强了SQL的功能,它同时引入了更强的法式逻辑。 PL/SQL支撑DML号令和SQL的事务节制语句。DDL在PL/SQL中不被支撑,这就意味作在PL/SQL法式块中不克不及建立表或其他任何对象。较好的PL/SQL法式设想是在PL/SQL块中利用象DBMS_SQL如许的内建包或施行EXECUTE IMMEDIATE号令成立动态SQL来施行DDL号令,PL/SQL编译器包管对象援用以及用户的权限。

SELECT语句用于从数据库中查询数据,当在PL/SQL中利用SELECT语句时,要与INTO子句一路利用,查询的前往值被付与INTO子句中的变量,变量的声明是在DELCARE中。SELECT INTO语法如下:

PL/SQL中SELECT语句只前往一行数据。若是跨越一行数据,那么就要利用显式游标(对游标的会商我们将在后面进行),INTO子句中要有与SELECT子句中不异列数量的变量。INTO子句中也能够是记实变量。

在PL/SQL中能够将变量和常量声明为内建或用户定义的数据类型,以援用一个列名,同时承继他的数据类型和大小。这种动态赋值方式长短常有用的,好比变量援用的列的数据类型和大小改变了,若是利用了%TYPE,那么用户就不必点窜代码,不然就必需点窜代码。

不单列名能够利用%TYPE,并且变量、游标、记实,或声明的常量都能够利用%TYPE。这对于定义不异数据类型的变量很是有用。

其它操作数据的DML语句是!INSERT、UPDATE、DELETE和LOCK TABLE,这些语句在PL/SQL中的语法与在SQL中的语法不异。我们在前面曾经会商过DML语句的利用这里就不再反复了。在DML语句中能够利用任安在DECLARE部门声明的变量,若是是嵌套块,那么要留意变量的感化范畴。

当施行一条DML语句后,DML语句的成果保具有四个游标属性中,这些属性用于节制法式流程或者领会法式的形态。当运转DML语句时,PL/SQL打开一个内建游标并处置成果,游标是维护查询成果的内存中的一个区域,游标在运转DML语句时打开,完成后封闭。隐式游标只利用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性。SQL%FOUND,SQL%NOTFOUND是布尔值,SQL%ROWCOUNT是整数值。

SQL%ISOPEN是一个布尔值,若是游标打开,则为TRUE, 若是游标封闭,则为FALSE。对于隐式游标而言SQL%ISOPEN老是FALSE,这是由于隐式游标在DML语句施行时打开,竣事时就当即封闭。

事务是一个工作的逻辑单位能够包罗一个或多个DML语句,事物节制协助用户包管数据的分歧性。若是事务节制逻辑单位中的任何一个DML语句失败,那么整个事务都将回滚,在PL/SQL顶用户能够明白地利用COMMIT、ROLLBACK、SAVEPOINT以及SET TRANSACTION语句。

COMMIT语句终止事务,永世保留数据库的变化,同时释放所有LOCK,ROLLBACK终止现行事务释放所有LOCK,但不保留数据库的任何变化,SAVEPOINT用于设置两头点,当事务挪用过多的数据库操作时,两头点长短常有用的,SET TRANSACTION用于设置事务属性,好比read-write和隔离级等。

当查询前往成果跨越一行时,就需要一个显式游标,此时用户不克不及利用select into语句。PL/SQL办理隐式游标,当查询起头时隐式游标打开,查询竣事时隐式游标主动封闭。显式游标在PL/SQL块的声明部门声明,在施行部门或非常处置部门打开,取数据,封闭。下表显示了显式游标和隐式游标的不同:

退出移动版