oracle基礎學習

2021-07-04 06:07:24 字數 2866 閱讀 5979

一、資料庫

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...