Oracle OCP笔记(16)SQL与PL/SQL对象
来源:互联网 发布:知乎为什么叫绿乎 编辑:程序博客网 时间:2024/05/19 09:04
Oracle OCP笔记(16)SQL与PL/SQL对象
1.SQL语言16条命令:
数据操纵语言(Data Manipulation Language, DML)命令:
·SELECT
·INSERT
·UPDATE
·DELETE
·MERGE
数据定义语言(Data Definition Language, DDL)命令:
·CREATE
·ALTER
·DROP
·RENAME
·TRUNCATE
·COMMENT
数据控制语言(Data Control Language, DCL)命令:
·GRANT
·REVOKE
事务控制语言(Transaction Control Language, TCL)命令:
·COMMIT
·ROLLBACK
·SAVEPOINT
2.PL/SQL对象
匿名块
存储过程(Procedure)
函数(Function)
包(包头Package、包体Package Body)
触发器(Trigger)
视图(View)
(1)匿名块
DECLARE
-- 声明部分 (程序未用到可不写)
BEGIN
-- 执行部分 (必需)
EXCEPTION
-- 异常处理 (不处理异常可不写)
END;
(2).存储过程(Procedure)
CREATE OR REPLACE PROCEDURE procedure_name
[(argument [IN | OUT | IN OUT] type,…)]
{IS | AS }
-- 变量定义,cursor ,子过程等
BEGIN
-- procedure body;
EXCEPTION
-- 例外处理
END [procedure_name];
(3).函数(Function)
CREATE [OR REPLACE] FUNCTION function_name
[(argument [IN | OUT | IN OUT] type,…)]
RETURN return_type {IS | AS}
-- 变量定义
BEGIN
-- function body
EXCEPTION
-- 例外处理
END [function_name];
(4).包(Package)
Package header:
CREATE OR REPLACE PACKAGE Package_name IS/AS
PROCEDURE procedure_name(x IN NUMBER,y OUT VARCHAR2);
FUNCTION function_name RETURN VARCHAR2;
var VARCHAR2(100);
END;
Package Body:
CREATE OR REPLACE PACKAGE BODY Package_name IS/AS
PROCEDURE procedure_name(x IN NUMBER , y OUT VARCHAR2) AS
BEGIN
IF X > 100 THEN
Y := 'X>100';
ELSE
Y := 'X<=100';
END IF;
END;
FUNCTION function_name RETURN VARCHAR2 AS
BEGIN
VAR := 'HELLO';
RETURN VAR||'EVERYONE';
END;
END;
(5).触发器(Trigger)
CREATE OR REPLACE TRIGGER trigger_name
[BEFORE | AFTER] [INSERT | UPDATE (of)| DELETE | DDL event]
ON [table | database | schema]
FOR EACH ROW
[WHEN (condition)]
DECLARE
-- 变量定义
BEGIN
-- :old.column_name
-- :new.column_name
-- if inserting then ...
EXCEPTION
END trigger_name;
只能通过触发事件来运行触发器.
DML触发器: INSERT、UPDATE、DELETE.
DDL触发器: CREATE、ALTER、DROP、TRUNCATE
数据库操作: SERVERERROR、LOGON、LOGOFF、STARTUP、SHUTDOWN
暂停: SUSPEND -- alter system suspend; alter system resume;
触发器级别: 语句级别,行级(FOR EACH ROW)
触发器内不能使用事务控制语句: Commit,Rollback,Savepoint,触发器主体调用的存储过程或函数中不能使用事务控制语句.
触发器主体可以使用: :NEW, :OLD
WHEN字句: 仅能用于行级触发器,触发器主体仅对满足WHEN字句指定条件的行进行处理.
触发器谓词: INSERTING,UPDATING,DELETING 值为TRUE/FALSE.
0 0
- Oracle OCP笔记(16)SQL与PL/SQL对象
- oracle pl/sql笔记
- Oracle SQL与PL/SQL学习笔记(-)
- Oracle 学习笔记 16 -- 游标(PL/SQL)
- Oracle 笔记---SQL、PL/SQL学习笔记
- ORACLE PL/SQL 对象(object)学习笔记(一)
- ORACLE PL/SQL 对象(object)学习笔记(二)
- ORACLE PL/SQL 对象(object)学习笔记(三)
- Oracle笔记 十二、PL/SQL 面向对象oop编程
- Oracle笔记 十三、PL/SQL面向对象之package
- Oracle笔记 十二、PL/SQL 面向对象oop编程
- Oracle笔记 十三、PL/SQL面向对象之package
- Oracle笔记 十二、PL/SQL 面向对象oop编程
- Oracle笔记 十三、PL/SQL面向对象之package
- Oracle笔记 十二、PL/SQL 面向对象oop编程
- Oracle笔记 十三、PL/SQL面向对象之package
- Oracle PL/SQL学习笔记
- oracle学习笔记 ---- PL/SQL
- swift UI专项训练36 ImageVi图片边框阴影
- Linq中的group by多表多字段
- 天声人語 20150311
- 一个demo弄懂Button控件的四种监听方式
- 谷歌浏览器开发工具使用教程
- Oracle OCP笔记(16)SQL与PL/SQL对象
- andriod 4.0以上版本添加了 android:configChanges="keyboardHidden|orientation"不调用onConfigrationChange方法的解决办法
- tomcat Connecttion refuse 的问题
- 20本必读的用户体验书
- 数组
- gnuradio学习之qa_tag_file_sink.py
- android事件监听回调机制
- java web项目 图片资源与部署目录分离
- 日经春秋 20150311