oracle grant 存儲過程 執行 job 小總結

grant

GRANT — 賦予一個用戶,一個組或所有用戶訪問權限

GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }

輸入

privilege
可能的權限有:
 
SELECT
訪問聲明的表/視圖的所有列/字段.
INSERT
向聲明的表中插入所有列字段.
UPDATE
更新聲明的所有列/字段.
DELETE
從聲明的表中刪除所有行.
RULE
在表/視圖上定義規則 (參見 CREATE RULE 語句).
ALL
賦予所有權限.
object
賦予權限的對象名.可能的對象是: 
  • table (表)
  • view (視圖)
  • sequence (序列)
  • index (索引)
PUBLIC
代表是所有用戶的簡寫.
GROUP group
將要賦予權限的組 group .目前的版本中,組必須是用下面方法顯式創建的.
username
將要賦予權限的用戶名.PUBLIC 是代表所有用戶的簡寫.

描述

GRANT 允許對象的創建者給某用戶或某組或所有用戶(PUBLIC)某些特定的權限.對象創建後,除了創建者外,除非創建者賦予(GRANT)權限,其他人沒有訪問對象的權限.

一旦用戶有某對象的權限,他就可以使用那個特權.不需要給創建者賦予(GRANT)對象的權限,創建者自動擁有對象的所有權限,包括刪除它的權限.

舉例:grant all on gft_doc_property_info to jcmanager
存儲過程

create or replace procedure test(var_name_1 in type,var_name_2 out type) as

--聲明變量(變量名 變量類型)

begin

--存儲過程的執行體

end test;

詳見:http://blog.csdn.net/squirrelrao/article/details/2639571

舉例:

create or replace procedure p_insert_gft_doc_property_info is
v_result    number;
begin
v_result := -11;
  insert into jcmanager1.gft_doc_property_info tt
      select *
         from jcmanager.gft_doc_property_info b
        where b.id not in (select a.id from jcmanager1.gft_doc_property_info a)
        order by b.id;     
   commit;  
   exception
      when others then
        rollback;
     p_jc_job_log('p_insert_gft_doc_property_info','insrt gft_doc_property_info ends with erros');
     p_jc_error_log(v_result, sqlcode, sqlerrm, 'p_insert_gft_doc_property_info'); 
end p_insert_gft_doc_property_info;

執行存儲過程:在plsql的命令窗口中執行exec 存儲過程

job

declare   
job number;      
begin
sys.dbms_job.submit(job,'p_insert_gft_doc_property_info ;',sysdate,'sysdate+1/1440');
end;

1:每分鐘執行

Interval => TRUNC(sysdate,'mi') + 1/ (24*60)

Interval => sysdate+1/1440

2:每天定時執行

例如:每天的凌晨1點執行

Interval => TRUNC(sysdate) + 1 +1/ (24)

3:每週定時執行

例如:每週一凌晨1點執行

Interval => TRUNC(next_day(sysdate,'星期一'))+1/24

4:每月定時執行

例如:每月1日凌晨1點執行

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24

5:每季度定時執行

例如每季度的第一天凌晨1點執行

Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

6:每半年定時執行

例如:每年7月1日和1月1日凌晨1點

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24

7:每年定時執行

例如:每年1月1日凌晨1點執行

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章