曾经写过的存储过程,留以后做参考
来源:互联网 发布:助力软件 编辑:程序博客网 时间:2024/04/28 13:51
CREATE OR REPLACE TRIGGER "AERIALCM"."AAE_ATTR_DATA_TYPE_BI" BEFORE INSERT on AERIALCM.AAE_ATTR_DATA_TYPE for each row DECLARE BEGIN :new.CREATED_TIMESTAMP := current_timestamp; END;
CREATE USER ALINEO_DB_USR
IDENTIFIED BY ALINEO_DB_USR
DEFAULT TABLESPACE ALINEO_TBLSPACE
TEMPORARY TABLESPACE ALINEO_TEMP_TBLSPACE;
declare
sequence_owner VARCHAR2(1000);
sequence_name VARCHAR2(1000);
new_sequence_name VARCHAR2(1000);
sql_string VARCHAR2(1000);
current_seq_value NUMBER(10) DEFAULT 1;
cursor cur is
select SEQUENCE_OWNER, SEQUENCE_NAME, LAST_NUMBER
from ALL_SEQUENCES
where SEQUENCE_NAME in (select SEQUENCE_NAME
from all_SEQUENCEs
group by SEQUENCE_NAME
having count(*) > 1)
order by SEQUENCE_NAME;
BEGIN
open cur;
fetch cur
into sequence_owner, sequence_name, current_seq_value;
while cur%found loop
dbms_output.put_line(sequence_owner);
dbms_output.put_line(sequence_name);
case sequence_owner
when 'APPEAL' then
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'APL')),
0,
30)
into new_sequence_name
from dual;
when 'MEMBER' then
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'MBR')),
0,
30)
into new_sequence_name
from dual;
when 'PROVIDER' then
if ('SQ_PROV_NETWORK' = sequence_name or
'SQ_CUSTOM_FIELD' = sequence_name or
'SQ_CUSTOM_FIELD_SEL' = sequence_name) then
fetch cur
into sequence_owner, sequence_name, current_seq_value;
continue;
else
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'PROV')),
0,
30)
into new_sequence_name
from dual;
end if;
when 'CLNTLTTR' then
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'CL')),
0,
30)
into new_sequence_name
from dual;
when 'CORREMGMT' then
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'CM')),
0,
30)
into new_sequence_name
from dual;
when 'CODES' then
fetch cur
into sequence_owner, sequence_name, current_seq_value;
continue;
else
select SUBSTR(REPLACE(sequence_name,
'SQ',
concat('SQ_', SUBSTR(sequence_owner, 0, 3))),
0,
30)
into new_sequence_name
from dual;
END CASE;
sql_string := 'CREATE SEQUENCE ' || sequence_owner || '.' ||
new_sequence_name ||
' MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH ' ||
current_seq_value || ' CACHE 20 NOORDER NOCYCLE';
dbms_output.put_line(sql_string);
EXECUTE IMMEDIATE sql_string;
sql_string := 'GRANT SELECT ON ' || sequence_owner || '.' ||
new_sequence_name || ' TO ALINEOAPP';
EXECUTE IMMEDIATE sql_string;
sql_string := 'DROP SEQUENCE ' || sequence_owner || '.' ||
sequence_name;
EXECUTE IMMEDIATE sql_string;
fetch cur
into sequence_owner, sequence_name, current_seq_value;
end loop;
close cur;
END;
DECLARE
OWNER VARCHAR2(100);
TRIGGERNAME VARCHAR2(100);
STRSQL VARCHAR2(1000);
CURSOR CUR IS SELECT TRIGGER_NAME FROM ALL_TRIGGERS WHERE OWNER='AERIALCM';
BEGIN
OPEN CUR;
FETCH CUR INTO TRIGGERNAME;
WHILE CUR%FOUND LOOP
STRSQL := 'DROP TRIGGER AERIALCM.'||TRIGGERNAME;
EXECUTE IMMEDIATE STRSQL;
FETCH CUR INTO TRIGGERNAME;
END LOOP;
CREATE USER ALINEO_DB_USR
IDENTIFIED BY ALINEO_DB_USR
DEFAULT TABLESPACE ALINEO_TBLSPACE
TEMPORARY TABLESPACE ALINEO_TEMP_TBLSPACE;
declare
sequence_owner VARCHAR2(1000);
sequence_name VARCHAR2(1000);
new_sequence_name VARCHAR2(1000);
sql_string VARCHAR2(1000);
current_seq_value NUMBER(10) DEFAULT 1;
cursor cur is
select SEQUENCE_OWNER, SEQUENCE_NAME, LAST_NUMBER
from ALL_SEQUENCES
where SEQUENCE_NAME in (select SEQUENCE_NAME
from all_SEQUENCEs
group by SEQUENCE_NAME
having count(*) > 1)
order by SEQUENCE_NAME;
BEGIN
open cur;
fetch cur
into sequence_owner, sequence_name, current_seq_value;
while cur%found loop
dbms_output.put_line(sequence_owner);
dbms_output.put_line(sequence_name);
case sequence_owner
when 'APPEAL' then
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'APL')),
0,
30)
into new_sequence_name
from dual;
when 'MEMBER' then
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'MBR')),
0,
30)
into new_sequence_name
from dual;
when 'PROVIDER' then
if ('SQ_PROV_NETWORK' = sequence_name or
'SQ_CUSTOM_FIELD' = sequence_name or
'SQ_CUSTOM_FIELD_SEL' = sequence_name) then
fetch cur
into sequence_owner, sequence_name, current_seq_value;
continue;
else
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'PROV')),
0,
30)
into new_sequence_name
from dual;
end if;
when 'CLNTLTTR' then
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'CL')),
0,
30)
into new_sequence_name
from dual;
when 'CORREMGMT' then
select SUBSTR(REPLACE(sequence_name, 'SQ', concat('SQ_', 'CM')),
0,
30)
into new_sequence_name
from dual;
when 'CODES' then
fetch cur
into sequence_owner, sequence_name, current_seq_value;
continue;
else
select SUBSTR(REPLACE(sequence_name,
'SQ',
concat('SQ_', SUBSTR(sequence_owner, 0, 3))),
0,
30)
into new_sequence_name
from dual;
END CASE;
sql_string := 'CREATE SEQUENCE ' || sequence_owner || '.' ||
new_sequence_name ||
' MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH ' ||
current_seq_value || ' CACHE 20 NOORDER NOCYCLE';
dbms_output.put_line(sql_string);
EXECUTE IMMEDIATE sql_string;
sql_string := 'GRANT SELECT ON ' || sequence_owner || '.' ||
new_sequence_name || ' TO ALINEOAPP';
EXECUTE IMMEDIATE sql_string;
sql_string := 'DROP SEQUENCE ' || sequence_owner || '.' ||
sequence_name;
EXECUTE IMMEDIATE sql_string;
fetch cur
into sequence_owner, sequence_name, current_seq_value;
end loop;
close cur;
END;
DECLARE
OWNER VARCHAR2(100);
TRIGGERNAME VARCHAR2(100);
STRSQL VARCHAR2(1000);
CURSOR CUR IS SELECT TRIGGER_NAME FROM ALL_TRIGGERS WHERE OWNER='AERIALCM';
BEGIN
OPEN CUR;
FETCH CUR INTO TRIGGERNAME;
WHILE CUR%FOUND LOOP
STRSQL := 'DROP TRIGGER AERIALCM.'||TRIGGERNAME;
EXECUTE IMMEDIATE STRSQL;
FETCH CUR INTO TRIGGERNAME;
END LOOP;
END;
CREATE OR REPLACE TRIGGER LEAVELINE_T
BEFORE INSERT OR UPDATE ON LEAVELINE
FOR EACH ROW
DECLARE NEXTVAL INTEGER;
BEGIN
SELECT MAXSEQ.NEXTVAL INTO NEXTVAL FROM DUAL;
:NEW.ROWSTAMP := NEXTVAL;
END;
- 曾经写过的存储过程,留以后做参考
- 我曾经写过这么牛逼的存储过程呢?
- 一些曾经参考过的博客地址
- 曾经做过的sip结构
- 曾经做过的项目:C# Excel
- 我曾经做过的插件
- 曾经写过的一些查询
- 我目前写过的最变态存储过程
- 我目前写过的最变态存储过程
- 留点做过的题,以后用
- 很久没写过PL/SQL存储过程了--删除SQL Plan Baseline的存储过程
- 很久没写过PL/SQL存储过程了--删除SQL Plan Baseline的存储过程
- 菜鸟PHP,自己曾经做过的php项目
- 我曾经做过的一些Android开发项目
- 曾经做过一个让我有点自豪的项目
- 曾经做过的c练习(1-5)
- 曾经做过的c练习(6-10)
- 曾经做过的c练习(11-15)
- 链表的操作_C
- Debian的NFS配置
- USB设备枚举过程
- 让Editplus自动格式化js|css|html
- gprof——GNU性能分析工具
- 曾经写过的存储过程,留以后做参考
- 告别车祸:隐形自行车头盔来了!
- 驱动、接口理解
- HDU 1059
- Objective C 状态模式
- 1、Linux多线程,基本概念
- thinkphp前台模板运算符
- C++中类的虚析构函数
- 2、Linux多线程,线程的分离与结合