Oracle PL/SQL DDL
Table, Field:
Create Table TABLE_NAME(
COL1 Integer Default 4 Not Null,
Constraint PK_NAME Primary Key(COL1));
Alter Table TABLE_NAME Add(
COL2 Decimal Default 0 Null,
COL3 Varchar2(20) Default ' ' Null,
COL4 Integer Not Null);
Alter Table TABLE_NAME Modify (
COL3 Varchar2(70) Default ' ' Not Null,
COL4 Decimal Default 0);
--注意:修改列时如果原来的列已经为Not Null,Modify语句中就只能给Null或者不写是否允许 Null的属性
Alter Table TABLE_NAME Drop (COL3, COL4);
Drop Table TABLE_NAME;
COL1 Integer Default 4 Not Null,
Constraint PK_NAME Primary Key(COL1));
Alter Table TABLE_NAME Add(
COL2 Decimal Default 0 Null,
COL3 Varchar2(20) Default ' ' Null,
COL4 Integer Not Null);
Alter Table TABLE_NAME Modify (
COL3 Varchar2(70) Default ' ' Not Null,
COL4 Decimal Default 0);
--注意:修改列时如果原来的列已经为Not Null,Modify语句中就只能给Null或者不写是否允许 Null的属性
Alter Table TABLE_NAME Drop (COL3, COL4);
Drop Table TABLE_NAME;
Index, Constraint:
Create Index IX_NAME_1 On TABLE_NAME(COL4, COL1)
Tablespace ERP Storage (Initial 20K Next 20k Pctincrease 75);
Drop Index IX_NAME_1;
Alter Table TABLE_NAME Drop Primary Key;
Alter Table TABLE_NAME Add Constraint PK_NAME Primary Key (COL1);
Alter Table TABLE_NAME Add Constraint UK_NAME Unique (COL4, COL3);
Alter Table TABLE_NAME Drop Constraint UK_NAME;
--or Alter Table TABLE_NAME Drop Unique (COL4, COL3);
Tablespace ERP Storage (Initial 20K Next 20k Pctincrease 75);
Drop Index IX_NAME_1;
Alter Table TABLE_NAME Drop Primary Key;
Alter Table TABLE_NAME Add Constraint PK_NAME Primary Key (COL1);
Alter Table TABLE_NAME Add Constraint UK_NAME Unique (COL4, COL3);
Alter Table TABLE_NAME Drop Constraint UK_NAME;
--or Alter Table TABLE_NAME Drop Unique (COL4, COL3);
Sequence:
Create Sequence SEQ_TABLE_NAME Minvalue 1 Maxvalue 999999999999
Start With 1 Increment By 1 Cache 20;
Alter Sequence SEQ_TABLE_NAME Increment By 5;
Drop Sequence SEQ_TABLE_NAME;
Start With 1 Increment By 1 Cache 20;
Alter Sequence SEQ_TABLE_NAME Increment By 5;
Drop Sequence SEQ_TABLE_NAME;
Sample Trigger:
Create Or Replace Trigger TR4CRM_SYS_ORG
After Insert Or Delete On SYS_ORG --After Update On SYS_ORG
Referencing Old As Old New As New
For Each Row
Declare
v_count Number := 0;
Begin
If Inserting Then --insert command
Select Count(*) Into v_count From SYS_ORG_VIEW Where CHILD_ID=:New.ORG_ID;
If :New.PARENT_ID>0 Then
--sql code
End If;
If :New.ORG_IS_VIRTUAL Is Null Or :New.ORG_IS_VIRTUAL=0 Then
--sql code
End If;
End If;
If Updating And :New.ORG_DEL_FLAG<>:Old.ORG_DEL_FLAG Then --update command
--sql code
End If;
If Deleting Then --delete command
Delete From SYS_ORG_VIEW Where PARENT_ID=:New.ORG_ID Or CHILD_ID=:New.ORG_ID;
End If;
End;
After Insert Or Delete On SYS_ORG --After Update On SYS_ORG
Referencing Old As Old New As New
For Each Row
Declare
v_count Number := 0;
Begin
If Inserting Then --insert command
Select Count(*) Into v_count From SYS_ORG_VIEW Where CHILD_ID=:New.ORG_ID;
If :New.PARENT_ID>0 Then
--sql code
End If;
If :New.ORG_IS_VIRTUAL Is Null Or :New.ORG_IS_VIRTUAL=0 Then
--sql code
End If;
End If;
If Updating And :New.ORG_DEL_FLAG<>:Old.ORG_DEL_FLAG Then --update command
--sql code
End If;
If Deleting Then --delete command
Delete From SYS_ORG_VIEW Where PARENT_ID=:New.ORG_ID Or CHILD_ID=:New.ORG_ID;
End If;
End;
禁用trigger
alter table PRD_ITEM disable all triggers;
alter table PRD_ITEM enable all triggers;