一、資料庫
1.建表
1) 在開發庫crmdb使用者tbcs上新建表"st_src_自己名字縮寫",要求包含字段如下:
id 10位number型別 非空,、name 256位varchar2型別 可空,、status 1位number型別 非空,、statusdate date型別 非空 預設為系統時間。並在id列上建立唯一索引。
建表語句:
create table st_src_cheyang
(id number(10) not null,
name varchar2(256),
status number(1) not null,
statusdate date
)2)在開發庫crmdb使用者tbcs上新建表"st_mid_自己名字縮寫",要求包含字段如下:
id 10位number型別 非空,name 256位varchar2型別 可空,intime date型別 非空 預設為系統時間。並在id,intime列上建立聯合唯一索引。
建表語句:
create table st_mid_cheyang
(id number(10) not null,
name varchar2(256),
intime date default sysdate not null
)3)在開發庫crmdb使用者tbcs上新建表"st_dst_自己名字縮寫",要求包含字段如下:
id 10位number型別 非空,name 256位varchar2型別 可空,value 256位varchar2型別 非空。
建表語句:
create table st_dst_cheyang
(id number(10) not null,
name varchar2(256),
value varchar2(256) not null
)2.新建觸發器
1)在開發庫crmdb使用者tbcs上新建"st_src_自己名字縮寫"表的觸發器"trg_st_src_自己名字縮寫",
要求在插入新紀錄,或者修改status欄位時,status字段值為1,則將記錄同步到"st_mid_自己名字縮寫"表,intime填寫系統時間。
建立語句:
create or replace trigger trg_st_src_cheyang
after insert or update of status on st_src_cheyang for each row
begin
if :new.status=1 then
insert into st_mid_cheyang values (:new.id,:new.status,:sysdate);
end if;
end;
3.新建儲存過程
1) 在開發庫crmdb使用者tbcs上新建儲存過程"prc_st_dst_自己名字縮寫",要求執行時,處理"st_mid_自己名字縮寫"表中的所有資料,
當記錄的name字段長度和自己名字漢語拼音長度一致,則入"st_dst_自己名字縮寫"表,value值填寫yyyymmddhh24miss格式當前時間+'和我名字等長'字串,例如"*****和我名字等長";
當長度不一致時,判斷長度大小,比自己名字長的,入"st_dst_自己名字縮寫"表,value值填寫yyyymmddhh24miss格式當前時間+'比我名字長'字串,例如"******長";
比自己名字短的,入"st_dst_自己名字縮寫"表,value值填寫yyyymmddhh24miss格式當前時間+'比我名字短'字串,例如"20150727165103比我名字短";
插入後,將"st_mid_自己名字縮寫"表對應記錄刪除;
需要做提交次數控制,每3條提交一次。
to_char(sysdate,'yyyymmddhhmiss')
create or replace procedure prc_st_dst_cheyang
(i_varparam in varchar2,)as
v_name varchar2(256);
v_id number(10);
v_value varchar2(256);
cursor c_queryname is select name,id from st_mid_cheyang ;
begin
open c_queryname;
loop
fetch c_queryname into v_name,v_id ;
exit when c_postype%notfound;
if i_varparam = v_name then
v_value :=to_char(sysdate,'yyyymmddhhmiss')||'和我名字等長';
else if i_varparam = v_name then
v_value :=to_char(sysdate,'yyyymmddhhmiss')||'比我名字長';
else
v_value :=to_char(sysdate,'yyyymmddhhmiss')||'比我名字短';
end if;
insert into st_dst_cheyang (id,name,value) values (:=v_id,:=v_name,)
end loog;
close c_queryname;
end
Oracle基礎學習4
下面將用乙個例項來講解 首先用oracel系統使用者 sysdba身份 連線到oracle 然後建立兩個使用者 lisi 和 zhangsan 然後為lisi授權,授建立表的許可權 lisi連線到資料庫,並建立乙個表mytable 為zhangsan授予連線到資料庫 建立表等許可權,並連線到orac...
Oracle基礎學習記錄
命令列操作oracle 有兩種命令列可以操作oracle,一種是系統自帶,一種是oracle帶的。系統自帶的命令列,主要是用於資料匯入 匯出,實際上也是呼叫oracle的工具。安裝oracle時,安裝程式會往系統環境變數中新增oracle工具等所在位置,所以系統命令行才能直接呼叫oracle的exp...
Oracle基礎學習(1)基礎語法
1.select distinct valuea valueb from table,2.別名則在選取後面空格分開,同時要用引號,如 valuea columa 3.連線操作 select ename job as employee from emp 或則 select ename is a job...