标签:har cot dna 插入 output ber 触发器 bms log
http://www.cnblogs.com/huyong/archive/2011/05/10/2041951.html#_Toc15837
SQL语言只是访问、操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发。PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点。
提示:在 PL/SQL中只能用 SQL语句中的 DML 部分,不能用 DDL 部分,如果要在PL/SQL中使用DDL(如CREATE table 等)的话,只能以动态的方式来使用。
pl/sql source program的基本单元是块
PL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分。
declare,begin,exception,end4个关键字来分隔三个块
PL/SQL块可以分为三类:
1. 无名块或匿名块(anonymous):动态构造,只能执行一次,可调用其它程序,但不能被其它程序调用。
2. 命名块(named):是带有名称的匿名块,这个名称就是标签。
3. 子程序(subprogram):存储在数据库中的存储过程、函数等。当在数据库上建立好后可以在其它程序中调用它们。
4. 触发器(Trigger):当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。
5. 程序包(package):存储在数据库中的一组子程序、变量定义。在包中的子程序可以被其它程序包或子程序调用。但如果声明的是局部子程序,
则只能在定义该局部子程序的块中调用该局部子程序。
一个pl/sql子程序是一个命名的pl/sql块,可以重复调用的
提示: 一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果.
列名不要与变量名一样 name是列名,name1是变量名
DECLARE
name1 varchar2(20) :=‘ccc‘;
BEGIN
DELETE FROM e1 WHERE name=name1;
END;
select * from e1;
select * from e1 where name=‘ccc‘;
DELETE FROM e1 WHERE name=‘ccc‘;
DECLARE
Row_id ROWID;
info VARCHAR2(40);
BEGIN
INSERT INTO scott.dept VALUES (90, ‘财务室‘, ‘海口‘)
RETURNING rowid, dname||‘:‘||to_char(deptno)||‘:‘||loc
INTO row_id, info;
DBMS_OUTPUT.PUT_LINE(‘ROWID:‘||row_id);
DBMS_OUTPUT.PUT_LINE(info);
END;
================================================
/***********************************************/
/* 文件名: test.sql */
/* 说 明:
一个简单的插入测试,无实际应用。*/
/* 作 者: EricHu */
/* 时 间: 2011-5-9 */
/***********************************************/
DECLARE
v_ename VARCHAR2(20) := ‘Bill‘;
v_sal NUMBER(7,2) :=1234.56;
v_deptno NUMBER(2) := 10;
v_empno NUMBER(4) := 8888;
BEGIN
INSERT INTO emp ( empno, ename, JOB, sal, deptno , hiredate )
VALUES (v_empno, v_ename, ‘Manager‘, v_sal, v_deptno,
TO_DATE(‘1954.06.09‘,‘yyyy.mm.dd‘) );
COMMIT;
END;
select * from emp;
=======================================
/***********************************************/
/* 文件名: test_deletedata.sql */
/* 说 明:
简单的删除例子,不是实际应用。 */
/* 作 者: EricHu */
/* 时 间: 2011-5-9 */
/***********************************************/
DECLARE
v_ename VARCHAR2(20) := ‘Bill‘;
v_sal NUMBER(7,2) :=1234.56;
v_deptno NUMBER(2) := 10;
v_empno NUMBER(4) := 8888;
BEGIN
INSERT INTO emp ( empno, ename, JOB, sal, deptno , hiredate )
VALUES (v_empno, v_ename, ‘Manager‘, v_sal, v_deptno,
TO_DATE(‘1954.06.09‘,‘yyyy.mm.dd‘) );
COMMIT;
END;
DECLARE
v_empno number(4) := 8888;
BEGIN
DELETE FROM emp WHERE empno=v_empno;
COMMIT;
END;
select * from emp;
标签:har cot dna 插入 output ber 触发器 bms log
原文地址:http://www.cnblogs.com/createyuan/p/6869223.html