Developer2000入门之PLSQL语法手册_第1页
Developer2000入门之PLSQL语法手册_第2页
Developer2000入门之PLSQL语法手册_第3页
Developer2000入门之PLSQL语法手册_第4页
Developer2000入门之PLSQL语法手册_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP1 72 20 04 03 Developer2000Developer2000 入门之入门之 鑫鑫茂科技 信息部 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP2 72 20 04 03 目目 录录 第一部分第一部分 SQLSQL 语法部分语法部分 3 一 CREATE TABLE 语句 3 二 CREATE SEQUENCE 语句 5 三 CREATE VIEW 语句 6 四 INSERT 语句 7 五 UPDATE 语句 9 六 DELETE 语句 10 七 TRUNCATE 语句 11 八 各类 FUNCTIONS 12 1 转换函数 12 2 日期函数 16 3 字符函数 20 4 数值函数 28 5 单行函数 33 6 多行函数 35 第二部分第二部分 PL SQLPL SQL 语法部分语法部分 41 一 PL SQL 语言简介 41 二 变量说明 48 三 PL SQL 控制程序流 52 四 存储过程 55 五 存储函数 55 六 PACKAGE 55 七 触发器 58 八 应用实例 60 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP3 72 20 04 03 第一部分第一部分 SQLSQL 语法部分语法部分 一 一 CreateCreate tabletable 语句语句 语句 CREATE TABLE schema table name column datatype DEFAULT expr column constraint table constraint column datatype DEFAULT expr column constraint table constraint PCTFREE integer PCTUSED integer INITRANS integer MAXTRANS integer TABLESPACE tablespace STORAGE storage clause RECOVERABLE UNRECOVERABLE PARALLEL DEGREE integer DEFAULT INSTANCES integer DEFAULT NOPARALLEL CACHE NOCACHE CLUSTER cluster column column ENABLE enable clause DISABLE disable clause AS subquery 表是 Oracle 中最重要的数据库对象 表存储一些相似的数据集合 这些数据描述成 若干列或字段 create table 语句的基本形式用来在数据库中创建容纳数据行的表 create table 语句的简单形式接收表名 列名 列数据类型和大小 除了列名和描述 外 还可以指定约束条件 存储参数和该表是否是个 cluster 的一部分 Schema 用来指定所建表的 owner 如不指定则为当前登录的用户 Table name 用来指定所创建的表名 最长为 30 个字符 但不可以数字开头 可为下 划线 但不可同其它对象或 Oracle 的保留字冲突 Column 用来指定表中的列名 最多 254 个 Datatype 用来指定列中存储什么类型的数据 并保证只有有效的数据才可以输入 column constraint 用来指定列约束 如某一列不可为空 则可指定为 not null table constraint 用来指定表约束 如表的主键 外键等 Pctfree 用来指定表中数据增长而在 Oracle 块中预留的空间 DEFAULT 为 10 也 就是说该表的每个块只能使用 90 10 给数据行的增大时使用 Pctused 用来指定一个水平线 当块中使用的空间低于该水平线时才可以向该中加 入新数据行 Parallel 用来指定为加速该表的全表扫描可以使用的并行查询进程个数 Cache 用来指定该表为最应该缓存在 SGA 数据库缓冲池中的候选项 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP4 72 20 04 03 Cluster 用来指定该表所存储的 cluster Tablespace 用来指定用数据库的那个分区来存储该表的数据 Recoverable Unrecoverable 用来决定是否把对本表数据所作的变动写入 Redo 文 件 以恢复对数据的操作 As 当不指定表的各列时 可利用 As 子句的查询结果来产生数据库结构和数据 例 1 create table mytab1e mydec decimal myint inteter tablespace user data pctfree 5 pctused 30 2 create table mytable2 as select from mytable1 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP5 72 20 04 03 二 二 createcreate sequencesequence 语句语句 语句 CREATE SEQUENCE schema sequence name INCREMENT BY integer START WITH integer MAXVALUE integer NOMAXVALUE MINVALUE integer NOMINVALUE CYCLE NOCYCLE CACHE integer NOCACHE ORDER NOORDER 序列用来为表的主键生成唯一的序列值 Increment by 指定序列值每次增长的值 Start with 指定序列的第一个值 Maxvalue 指定产生的序列的最大值 Minvalue 指定产生的序列的最小值 Cycle 指定当序列值逵到最大或最小值时 该序列是否循环 Cache 指定序列生成器一次缓存的值的个数 Order 指定序列中的数值是否按访问顺序排序 例 1 create sequence myseq increment by 4 start with 50 maxvalue 60 minvalue 50 cycle cache 3 2 sql create sequence new s sql insert into new new id last name first name values new s nextval daur permit Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP6 72 20 04 03 三 三 createcreate viewview 语句语句 语句 CREATE OR REPLACE FORCE NOFORCE VIEW schema view name alias alias AS subquery WITH CHECK OPTION CONSTRAINT constraint 视图实际上是存储在数据库上旳 select 语句 每次在 sql 语句中使用视图时 表示该视图的 select 语句就用来得到需要的数据 Or replace 创建视图时如果视图已存在 有此选项 新视图会覆盖旧的 视图 Force 如有此选项 当视图基于的表不存在或在该模式中没有创建视图的权限 时 也可以建立视图 As subquery 产生视图的 select 查询语句 With check option 如果视图是基于单表的且表中所有的非空列都包含在视 图中时 该视图可用于 insert 和 update 语句中 本 选项保 证在每次插入或更新数据后 该数据可以在视 图中查到 例 1 create or place view new v as select substr d d last name 1 3 d d lastname d d firstname b b start date b b location from new1 d new2 b where d d lastname b b lastname Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP7 72 20 04 03 四 四 INSERTINSERT 语句语句 1 语法 INSERT INTO schema table view subquery dblink column column VALUES expr expr subquery WHERE condition 2 插入单行 使用 VALUES 关键词为新行的每一列指定一个值 如果不知道某列的值 可以使用 NULL 关键词将其值设为空值 两个连续的逗号也可以表示空值 也可使用 NULL 关 键词 插入一行时试图为那些 NOT NULL 的列提供一个 NULL 值 会返回错误信息 举例 插入一条记录到 DEPARTMENT 表中 INSERT INTO DEPARTMENT DEPARTMENT ID NAME LOCATION ID VALUES 01 COMPUTER 167 3 插入多行 将 SELECT 语句检索出来的所有数据行都插入到表中 这条语句通常在从一个表 向另一个表快速复制数据行 举例 INSERT INTO ORDER TEMP SELECT A ORDER ID B ITEM ID C NAME E FIRST NAME E LAST NAME A ORDER DATE A SHIP DATE D DESCRIPTION B ACTUAL PRICE B QUANTITY B TOTAL FROM SALES ORDER A ITEM B CUSTOMER C PRODUCT D EMPLOYEE E WHERE MONTHS BETWEEN TO DATE A ORDER DATE TO DATE 01 7 月 91 0 AND A CUSTOMER ID C CUSTOMER ID AND C SALESPERSON ID E EMPLOYEE ID AND A ORDER ID B ORDER ID AND B PRODUCT ID D PRODUCT ID Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP8 72 20 04 03 4 从其它表复制数据 要快速地从一个表向另一个尚不存在的表复制数据 可以使用 CREATE TABLE 语 句定义该表并同时将 SELECT 语句检索的结果复制到新表中 CREATE TABLE EMPLOYEE COPY AS SELECT FROM EMPLOYEE Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP9 72 20 04 03 五 五 UPDATEUPDATE 语句语句 1 语法 UPDATE schema table view subquery dblink alias SET column column subquery column expr subquery column column subquery column expr subquery WHERE condition UPDATE 语句更新所有满足 WHERE 子句条件的数据行 同样 该语句可以用 SELECT 语句检索得到 但 SELECT 必须只检索到一行数据值 否则报错 而且每更新一行 数据 均要执行一次 SELECT 语句 举例 UPDATE EMPLOYEE COP SET SALARY SALARY 400 WHERE TO NUMBER TO CHAR HIRE DATE YYMMDD 5050 then raise error message 引发错误处理 else insert into c nt c t values i end if exception when error message then insert into c nt c t values 0 end 从上例中可以看出 PL SQL 语法的一般规则 PL SQL 中语句以分号 结尾 开始程序块的 PL SQL 语句 如 IF 或 BEGIN 语句 没有分句 文本值括在单引号 内 而不是 过程只允许最后有一个出口 PL SQL 程序可以分为三个部分 DECLARE 部分用于变量 常量 函数 过程 Cursor BEGIN 部分包含 PL SQL 块中要执行的代码 用于程序处理 其中可以调用 函数 过程 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP42 72 20 04 03 Exception 部分用于出错处理 下面我们再看一个例子 declare i number 1 t number 1 p number 1 create table c ny c t number cou t number function aa xx number return number is define function tt number ct number 1 j number 1 begin while j xx loop ct ct j j j 1 end loop return ct end aa begin create table c nt c t number cou t number commit while i10 then Raise out of bounds End if 用於到 cursor 中 變量進行控制 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP46 72 20 04 03 另另 在声明一个变量时 PL SQL 提供两种变量类型 TYPE ROWTYPE 1 TYPE 使用 TYPE 时 可以有种用法 一用法见下例 declare Balancenumber 7 2 Minimum balancebalance type 10 00 在上例中 minimum balance 数据类型为 number 7 2 具默认值为 10 00 二用法见下例 将数据类型与 table 中一 column datatype 相对应起来 如 果 table 中 column datatype 变更 则在运行时 上数据类型会自动的 变换上 declare my dname empc empto type 2 rowtype 使用 rowtype 数据类型用于将 table 和 cursor 中一数据行相对起来 见下例 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP47 72 20 04 03 Declare Cursor my cursor is select sal nvl comm 0 salcomm wages ename from emp My rec my cursor rowtype Begin Open my cursor loop Fetch my cursor into my rec Exit when my cursor notfound If my rec wages 200 then Insert into temp values null my rec wages my rec ename End if End loop Close my cursor End 定義一個 rowtype 類 型 與 my cursor 中記 錄行對應 將 my cursor 中之記錄 寫到 my rec 變量中去 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP48 72 20 04 03 二 二 变量说明变量说明 在 PL SQL 中包括以下几种常见的变量类型 CHARCHAR 存储定长的 ASCII 字符串 允许存储数字 文本文符等 最长可 255 个字符 VARCHAR2VARCHAR2 存储变长的字符串 尽管伋按符串的最大长度来定义 但 VARCHAR2 和 CHAR 的区别在于如果达不到定义的长度 下的空间不会自动的填写为空格 VARCHAR2 最大可以放入 2000 个字符 DATE DATE 实际上是存储时间信息的日期 时间戳 在使用日期时 应考虑怎样使用日期 函数 有关日期函数的格式见函数说明部分 NUMBER NUMBER 存储数值数据 包括整数和浮点数 数据范围可以从 1 10 到 38 10 而 且 你有很大的数据空间 BOOLENABOOLENA 存储布尔值 它表示是 否 真 假 1 0 之类的东西 LONG LONG 这是一种文本字符串 其长度大于 VARCHAR2 字段的 2000 个字符 该类最多可 储存 2 GB 个字符 与原始二进制数据相比 它只能存储字符信息 RAW RAW 用来存储操作系统使用的原始二进制数据 可用于存储像图像或声音记录这样 的信息 但这种数据长度最长度只有 255 字节 LONGLONG RAW RAW 与 LONG 类型等价 但存储二进制数据 最长可达 2GB 个字节 BINARY INTEGERBINARY INTEGER 这个字段按计算器使用的二进制格式存储信息 从 2 到 2 1 127 3131 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP49 72 20 04 03 另另 PL SQLPL SQL 提位两种复合类型提位两种复合类型 TABLE TABLE 和和 RECORDRECORD 1 TABLE 要定义一个数组 你使用表类型定义语句 例如要定义 Last name 数组 可以使用下述语句 type last name list is table of varchar2 22 index by binary integer last name last name list 当定义一个长类型时 就涉及到一个删除表的问题 PL SQL 表不能用 Delete 语句来删除 但可以将每一行空值如下所示 sal tab 3 null 另一种法是定义两个相同类型的表类型 如果要将另一表清空 只需将 空表给要清空的表即可 如下所示 declare type numtabtype is table of number index by binary integer sal tab numbertype empty tab numbertype begin for I in 1 100 loop sal tab I I end loop End Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP50 72 20 04 03 2 RECORD Declare Type deptrectype is record deptnonumber 2 dnamechar 14 locchar 14 dept recdeptrectype begin select deptno dname loc into dept rec from dept where deptno 30 end 与所有的编程语言一样 定义一个变量时 同样存在变量作用范围问题 如下所示 declare x real function function name variant type return type is declare x char begin end function name begin x expression1 end 變量變量 x 為為 real 類型類型 在此範圍之內變量在此範圍之內變量 x 為為 char 變量變量 x 為為 real 類型類型 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP51 72 20 04 03 如果想引用另一 block 之变量时 可以加上 block label 如下所示 declare birthdate date begin declare birthdate date begin If birthdate outer birthdate then End if End End outer Block label 引用 outer block 塊所定義之變量 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP52 72 20 04 03 三 三 PL SQLPL SQL 控制程序流控制程序流 1 IF THEN ELSIF ELSE END IF IF THEN STATMENT1 elseif then statment2 elseif then statment3 ELSE STATMENT4 end if 例例 for ctr in 1 20 loop for ctr in 1 10 loop if outer ctr ctr then end loop inner end loop outer 2 loop exit end loop loop sequence of statement exit end loop 例例 loop fetch c1 into exit when c1 notfound end loop Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP53 72 20 04 03 close c1 另另 加 loop label 例 loop loop exit outer when end loop end loop outer 3 while loop end loop 结构如下所示 例 while total 25000 loop Select sa1 into salary from emp where Total total salary End loop 4 for loop 例 1 select count empno into emp count from emp for L in 1 emp count loop end loop 例 2 for step in 1 25 loop for step in 1 10 loop if outer step 15 then end loop end loop outer Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP54 72 20 04 03 5 cursor loop declare sursor c1 is select ename from emp name varchar2 100 begin for p c1 rec in c1 loop name p c1 rec ename end loop Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP55 72 20 04 03 四 四 存储过程存储过程 要创建存储过程 可以使用下面的 SQL 和 PL SQL 语句 CREATE OR REPLACE PROCEDURE PROCEDURE NAME parameter list AS BEGIN SQL AND PL SQL COMMANDS END 五 五 存储函数存储函数 create or replace function function name parameter list return type is Begin end 六 六 PackagePackage Package 分为两部分 Specific and Body 在包说明部分中 主要将此包中所含的过程和 Function 的调用参数说明清楚 如 CREATE OR REPLACE PACKAGE ZDL JOB PKG AS PROCEDURE ZDL INSERT JOB p bkc id in number p item id in number p job number in out varchar2 p group id in number p lead day in number p load type in number P STATUS TYPE IN NUMBER P USER ID IN NUMBER P JOB TYPE IN VARCHAR2 PROCEDURE ZDL UPDATE JOB P BKC ID IN NUMBER P GROUP ID IN NUMBER Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP56 72 20 04 03 P STATUS TYPE IN NUMBER P USER ID IN NUMBER FUNCTION WIP MASS LOAD P GROUP ID IN NUMBER P USER ID IN NUMBER RETURN NUMBER PROCEDURE ZDL PRE UPDATE FUNCTION ZDL UPDATE ORACLE WIP P USER ID IN NUMBER RETURN NUMBER FUNCTION ZDL JOB STATUS P JOB NUMBER IN VARCHAR2 RETURN NUMBER END ZDL JOB PKG 在包体部分 主要将包说明部分之过程及 Function 之代码写出来 如 CREATE OR REPLACE PACKAGE BODY ZDL JOB PKG AS PROCEDURE ZDL INSERT JOB p bkc id in number p item id in number p job number in out varchar2 p group id in number p lead day in number P LOAD TYPE IN NUMBER P STATUS TYPE IN NUMBER P USER ID IN NUMBER P JOB TYPE IN VARCHAR2 is begin end ZDL INSERT JOB PROCEDURE ZDL UPDATE JOB P BKC ID IN NUMBER P GROUP ID IN NUMBER P STATUS TYPE IN NUMBER P USER ID IN NUMBER AS BEGIN END ZDL UPDATE JOB FUNCTION WIP MASS LOAD P GROUP ID IN NUMBER P USER ID IN NUMBER RETURN NUMBER as begin END WIP MASS LOAD PROCEDURE ZDL PRE UPDATE IS begin end ZDL PRE UPDATE FUNCTION ZDL UPDATE ORACLE WIP P USER ID IN NUMBER RETURN NUMBER IS begin Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP57 72 20 04 03 end ZDL UPDATE ORACLE WIP FUNCTION ZDL JOB STATUS P JOB NUMBER IN VARCHAR2 RETURN NUMBER AS BEGIN END ZDL JOB STATUS END ZDL JOB PKG Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP58 72 20 04 03 七 七 触发器触发器 所需系统权限 要为某表创建触发器 必须能改变这个表 因此不仅要拥有表 并且要具有这个 表的 alter 权限 或者具有 alter any table 系统权限 除此之外 必须有 create triger 系统权限 若要在另一个用户账号 account 也称之为模式 schema 上创建触发器 就必具有 create any trigger 系统权限 所需表权限 触发器可以引用的表并不是初始化触发事件的表 触发器 触发器有十二种类型 一个触发器的类型由执行触发器的层次位置和触发事务 的类型定义 行级触发器 在某个事务中 行级触发器行执行 对于上述 ledger 表中记例子而言 触发器 行级触发器是在 create trigger 命令中通过用 for each row 子句创建的 合法的触发器类型 当两种不同类型之触发动作相结合时 有十二种可能的配置 Before insert行级触发器 before insert 语句级触发器 after insert 行级触发器 after insert 语句级触发器 before update行级触发器 before update语句级触发器 after update 行级触发器 after update 语句级触发器 before delete行级触发器 before delete语句级触发器 after delete行级触发器 after delete语句级触发器 Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP59 72 20 04 03 例 CREATE OR REPLACE TRIGGER APPS ZDL BKC JOB BODY AFI AFTER INSERT ON APPS ZDL BKC JOB BODY REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW BEGIN Insert into audit tbl values new id new UPDATE ZDL BKC JOB HEAD SET UPDATE DATE SYSDATE WHERE ZDL BKC JOB HEAD ID NEW ZDL BKC JOB BODY ID END Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP60 72 20 04 03 八 八 应用实例应用实例 下面以电算部开发出之程序 之各类程序为例 1 Create table index sequence table trigger 首先清除原先已有之重名 table Sequence 等 DROP TABLE ZDL BKC JOB BODY DROP TABLE ZDL BKC JOB HEAD DROP TABLE ZDL BKC JOB UPDATE drop sequence zdl bkc job s 建立 table sequence 以及 Index create table zdl bkc job head zdl bkc job head id number not null assembly varchar2 9 not null lot no varchar2 240 job no varchar2 240 OL DATE date quantity number line code varchar2 240 created date date update date date primary key zdl bkc job head id create table zdl bkc job body zdl bkc job body id number not null references zdl bkc job head zdl bkc job head id level1 VARCHAR2 15 job1 varchar2 240 level2 VARCHAR2 15 job2 varchar2 240 level3 VARCHAR2 15 job3 varchar2 240 level4 VARCHAR2 15 job4 varchar2 240 level5 VARCHAR2 15 job5 varchar2 240 create table ZDL BKC JOB UPDATE BKC ID NUMBER NOT NULL LOCATION ID NUMBER NOT NULL ACTION ID NUMBER NOT NULL JOB NUMBER VARCHAR2 240 UPDATED FLAG VARCHAR2 1 CREATION DATE DATE UPDATED DATE DATE create sequence zdl bkc job s CREATE INDEX ZDL BKC JOB HEAD N1 ON ZDL BKC JOB HEAD ZDL BKC JOB HEAD ID ASSEMBLY CREATE INDEX ZDL BKC JOB BODY N1 ON ZDL BKC jOB BODY ZDL BKC JOB BODY ID LEVEL1 CREATE INDEX ZDL BKC JOB BODY N2 ON ZDL BKC jOB BODY ZDL BKC JOB BODY ID LEVEL2 CREATE INDEX ZDL BKC JOB BODY N3 ON ZDL BKC jOB BODY ZDL BKC JOB BODY ID LEVEL3 CREATE INDEX ZDL BKC JOB UPDATE N1 ON ZDL BKC JOB UPDATE ACTION ID LOCATION ID COMMIT 建立 table Trigger Trigger head after update CREATE OR REPLACE TRIGGER APPS ZDL BKC JOB HEAD AFU AFTER UPDATE OF LINE CODE LOT NO OL DATE QUANTITY ON APPS ZDL BKC JOB HEAD REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW BEGIN INSERT INTO ZDL BKC JOB UPDATE BKC ID LOCATION ID ACTION ID JOB NUMBER UPDATED FLAG CREATION DATE UPDATED DATE VALUES OLD ZDL BKC JOB HEAD ID 1 3 OLD JOB NO N SYSDATE SYSDATE END Trigger body before delete Y wenkufile temp2 2020 4 3 a220ce10 84b7 49e7 8df6 5a7bb6f56c33 bb3bb24ab5e9bf42bfc059087eea8886 pdfP61 72 20 04 03 CREATE OR REPLACE TRIGGER APPS ZDL BKC JOB BODY BRD BEFORE DELETE ON APPS ZDL BKC JOB BODY REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW BEGIN if old job1 is not null then INSERT INTO ZDL BKC JOB UPDATE BKC ID LOCATION ID ACTION ID JOB NUMBER UPDATED FLAG CREATION DATE UPDATED DATE VALUES OLD ZDL BKC JOB BODY ID 2 7 old JOB1 N SYSDATE SYSDATE END IF if old job2 is not null then INSERT INTO ZDL BKC JOB UPDATE BKC ID LOCATION ID ACTION ID JOB NUMBER UPDATED FLAG CREATION DATE UPDATED DATE VALUES OLD ZDL BKC JOB BODY ID 2 7 old JOB2 N SYSDATE SYSDATE END IF if old job3 is not null then INSERT INTO ZDL BKC JOB UPDATE BKC ID LOCATION ID ACTION ID JOB NUMBER UPDATED FLAG CREATION DATE UPDATED DATE VALUES OLD ZDL BKC JOB BODY ID 2 7 old JOB3 N SYSDATE SYSDATE END IF if old job4 is not null then INSERT INTO ZDL BKC JOB UPDATE BKC ID LOCATION ID ACTION ID JOB NUMBER UPDATED FLAG CREATION DATE UPDATED DATE VALUES OLD ZDL BKC JOB BODY ID 2 7 old JOB4 N SYSDATE SYSDATE END IF if old job5 is not null then INSERT INTO ZDL BKC JOB UPDATE BKC ID LOCATION ID ACTION ID JOB NUMBER UPDATED FLAG CREATION DATE UPDATED DATE VALUES OLD ZDL BKC JOB BODY ID 2 7 old JOB5 N SYSDATE SYSDATE END IF UPDATE ZDL BKC JOB HEAD SET UPDATE DATE SYSDATE WHERE ZDL BKC JOB HEAD ID OLD ZDL BKC JOB BODY ID END Trigger head after delete CREATE OR REPLACE TRIGGER APPS ZDL BKC JOB HEAD BRD BEFORE DELETE ON APPS ZDL BKC JOB HEAD REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW BEGIN INSERT INTO ZDL BKC JOB UPDATE BKC ID LOCATION ID ACTION ID JOB NUMBER UPDATED FLAG CREATION DATE UPDATED DATE VALUES OLD ZDL BKC JOB HEAD ID 1 7 OLD JOB NO N SYSDATE SYSDATE END Trigger body after insert CREATE OR REPLACE TRIGGER APPS ZDL BKC JOB BODY AFI AFTER INSERT ON APPS ZDL BKC JOB BODY REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW BEGIN UPDATE ZDL BKC JOB HEAD SET UPDATE DATE SYSDATE WHERE ZDL BKC JOB HEAD ID NEW ZDL BKC JOB BODY ID END

温馨提示

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

评论

0/150

提交评论