Oracle与sql server的同与不同

 

        数据库软件是当今发展最有前途的软件,是信息表达与管理、分类与构架的基础,而云上的数据库功能更强大。ORACLE SQL server是当今最流行的数据库,现将两者的异同介绍如下。

一、两者的区别    

Oracle数据库:Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

     sql server数据库:美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案

两者的区别:

  1. 操作的平台不同     

 Oracle可在所有主流平台上运行,Oracle数据库采用开放的策略目标,它使得客户可以选择一种最适合他们特定需要的解决方案。客户可以利用很多种第三方应用程序、工具。而SQL Server却只能在Windows上运行了。

SQL SeverWindow平台上的表现,和Windows操作系统的整体结合程度,使用方便性,和Microsoft开发平台的整合性都比Oracle强的很多。但Windows操作系统的稳定性及可靠性大家是有目共睹的,再说Microsoft公司的策略目标是将客户都锁定到Windows平台的环境当中,只有随着Windows性能的改善,SQL Server才能进一步提高。从操作平台这点上Oracle是完全优胜于SQL Server的了。也就是说Oracle支持多种操作系统,sql server支持window系统.

  1. 文体结构不同

oracle的文件体系结构为:

数据文件 .dbf(真实数据)

日志文件 .rdo

控制文件 .ctl

参数文件 .ora

sql server的文件体系结构为:

.mdf (数据字典)

.ndf (数据文件)

.ldf (日志文件)

3存储结构不同

  • oracle存储结构:

oracle里有两个块参数pctfree(填充因子)pctused(复用因子),可控制块确定块本身何时有,何时没有足够的空间接受新信息(对块的存储情况的分析机制)

这样可降低数据行连接与行迁移的可能性。块的大小可设置(oltp块和dss)

oracle中,将连续的块组成区,可动态分配区(区的分配可以是等额的也可以是自增长的)可减少空间分配次数

oraclel里表可以分为多个段,段由多个区组成,每个段可指定分配在哪个表空间里(段的类型分为:数据段、索引段、回滚段、临时段、cash段。oracle里还可对表进行分区,可按照用户定义的业务规则、条件或规范,物理的分开磁盘上的数据。

这样大大降低了磁盘争用的可能性。

oracle有七个基本表空间:

·system表空间(存放数据字典和数据管理自身所需的信息)

·rbs回滚表空间

·temp临时表空间

·tools交互式表空间

·users用户默认表空间

·indx索引表空间

不同的数据分别放在不同的表空间(数据字典与真实数据分开存放),oracle里基表(存储系统参数信息)加密存储,任何人都无法访问。只能通过用户可视视图查看。

  • sql server 存储结构

以页为最小分配单位,每个页为8k(不可控制,缺乏对页的存储情况的分析机制),可将8个连续的页的组成一个扩展,以进一步减少分配时所耗用的资源。(分配缺乏灵活性),在sql server里数据以表的方式存放,而表是存放在数据库里。

sql server有五个基本数据库:  www.2cto.com  

·master(数据字典)

·mode(存放样版)

·tempdb(临时数据库)

·msdb(存放调度信息和日志信息)

·pubs(示例数据库)

真实数据与数据字典存放在一起。对系统参数信息无安全机制。

  • Oracle sqlserver 统一与正气大同。

      Oracle拥有一些好的概念,在SQL SERVER 里面也有,只是实现的略有不同,现将这些整理如下。

  1. 数据库链接

建立了数据库链接,可以访问同类型的别的数据库。

1.1   SQL SERVER 的数据库链接

EXEC sp_addlinkedserver
@server='DBTEST',--定义的要访问的远程链接服务器别名
@srvproduct='', ----OLE DB 提供者产品。如果这个参数设置为SQL SERVER ,可忽略。其它常用值有 (Oracle  、 Access、  Jet Excel、  ODBC) 。
@provider='SQLOLEDB', ----- 看一下对应的参数例子:

                            SQL SERVER       SQLOLEDB

                             Access/Jet/Excel   Micofsoft.Jet.OLEDB.4.0

                             ODBC   MSDASQL

                             DB2     DB2OLEDB

                             Oracel   MSDAORA

                             File System  MSIDXS

 @datasrc='Server2' --要访问的服务器

                       看一下对应的OLE DB 提供者和这个参数的对应值。

                         SQL Server    SQL Server网络名

                         ODBC   系统DSN或ODBC连接字符串

                         Oracle    SQL*Net  别名

                         File System   Indexing    Service  目录名

EXEC sp_addlinkedsrvlogin
'DBVIP', --被访问的服务器别名
'false',
NULL,
'sa', --
帐号
'123456' --密码

、、、、、、、、、、、、、、、

如已经建立连接服务器,直接select * from 服务器ip.数据库.dbo.表 就可以访问,
否则可以采用:
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).pubs.dbo.
表, OPENDATASOURCE(
'SQLOLEDB',
'Data Source=
另一台pcServerName;UserID=另UID;Password=另Pass'
).pubs.dbo.
----

 

1.2     ORACLE 的数据库链接

 CREATE DATABASE LINK sales.hq.acme.com
  CONNECT TO scott IDENTIFIED BY tiger
  USING ’sales’;


SELECT *
FROM emp@sales.hq.acme.com;
 INSERT INTO accounts@sales.hq.acme.com(acc_no, acc_name, balance)   VALUES (5001, ’BOWER’, 2000);
UPDATE accounts@sales.hq.acme.com
         SET balance = balance + 500;
DELETE FROM accounts@sales.hq.acme.com
        WHERE acc_name = ’BOWER’

   SELECT *
   FROM adams.dept@sales.hq.acme.com;

二、SQL SERVER 文件组与 ORACLE 的表空间

Oracle的表空间对大表、分区表显示出了威力,如果一个表有多个索引,可放在多的表空间,可分时,速度更快。SQL SERVER 的表空间与ORACLE 功能相同。也是一种把数据按一定的规则分布到不同的文件组。如果规则再智能化,规则的命名和表空间的命名实现&宏功能或哈希功能,速度会更快。

2.1  oracle的表空间

 


例子: CREATE TABLE DW.LABEL1(
    DATE_TIME1   
date              NOT NULL ,
    LABEL_BM     
varchar (50)       NOT NULL ,
    LABEL_ID     
numeric (20, 0)    NOT NULL ,
    V1           
numeric (30, 6)    NULL ,
    B1           
numeric (38, 0)    NULL ,
    S1           
varchar (50)       NULL ,
    U1           
varchar (20)       NULL ,
    FLAG1        
numeric (38, 0)    NULL ,
    DAY_FLAG     
varchar (10)       NULL ,
    MONTH_FLAG   
varchar (7)        NULL ,
    FLAG_READ    
varchar (1)        NULL ,
   
CONSTRAINT PK1_LABEL PRIMARY KEY CLUSTERED (DATE_TIME1, LABEL_BM, LABEL_ID)
   
ON index1,
    CONSTRAINT REFLABEL1_AREA3 FOREIGN KEY (LABEL_ID, LABEL_BM)
   
REFERENCES DW.LABEL1_AREA(LABEL_ID, LABEL_BM)
)
ON primary1

 

 

2.2  SQL SERVER 的文件组。

CREATE NONCLUSTERED INDEX  IX_ContractPayPlan_Code  ON [dbo].[ContractPayPlan](Code) ON Contract_tradeGroup;

  

 

三、聚簇索引

 

使用聚簇索引,可以让有逻辑关系(如主从关系)的表按对应关系放到一起,检索时更快速。

 

3.1  SQL SERVER 

 

CREATE VIEW [dbo].[view_xxx] WITH SCHEMABINDING 
AS 
SELECT Table1.
主键, Table1.外键 
FROM Table1, Table2 
WHERE ( Table1.
外键 = Table2.主键)

 

CREATE UNIQUE CLUSTERED INDEX IDX_view_xxx
    ON [dbo].[view_xxx] (
主键外键);

 

ALTER DATABASE dbname 
SET ARITHABORT ON 

 

3.2   Oracle :

CREATE CLUSTER    e_d_cluster(deptid number(2) 

PCTUSED 60 

PCTFREE 10

SIZE 1024 --

TABLESPACE USERS

storage(

INITIAL 128k

NEXT 128k

MINEXTENTS 2

MAXEXTENTS 20

);

我们cluster中创建table:

 create table department  (deptid number(2) primary key,

dname varchar2(14),

loc varchar2(13))

cluster e_d_cluster(deptid);

 

 create table employe  (empid number primary key,

ename varchar2(10),

job varchar2(10),

 mgr  number,

hiredate date,

sal number,

comm number,

deptid number(2) references department(deptid))

cluster e_d_cluster(deptid);

 

 

 

Table created

 

四、物化视图

 

原来的视图就是一条SQL 语句,每运行一次就查询一次,如果数据量很大,就很费时。如果按照一定的策略把视图的查询结果保存,形成一个表,这个表按条件触发,就会缩短查询的时间。

 

--创建模式绑定视图

4.1   SQL SERVER 的物化视图

CREATE VIEW PersonAge_vw

WITH SCHEMABINDING

AS   SELECT Age,COUNT_BIG(*) AS CountAge FROM dbo.PersonTenMillion    GROUP BY Age

--为视图创建索引

CREATE UNIQUE CLUSTERED INDEX ivPersonAge    ON PersonAge_vw(Age)

 

4.2 Oracle  的物化视图

Oracle物化视图可以理解为用来存储数据表的副本或者聚集,物化视图可以用来复制一个表的全部数据或者部分数据,也可以复制多表关联查询的结果集。然后按照指定的时间间隔内自动更新副本数据的刷新。本文将介绍物化视图常用的场景和创建方法,以及刷新策略。

物化视图是基于select查询结果的数据副本,简单来讲就是数据的复制表,但是它可以按照特定的刷新策略刷新复制表中的数据。常用来:

1、物化视图经常用来当做远程数据表的本地化,可以用来做数据同步用。

2、也经常用来做本地单表或多表数据的汇总,这样子,可以定时把汇总数据更新到复制表,用来做决策分析用。

3、也可以用来做复杂视图的物化作用,把这种数据不经常实时更新的视图,物化成物理表,然后在物化表上建相应的索引,大大提高查询效率。

物化视图在创建时,可以指定刷新(refresh interval)的间隔来执行定时刷新物化表的数据。也可以利用基于事务的刷新,通过主表变化的行数实时来更新物化表。

创建实体化视图需要被授予CREATE MATERIALIZED VIEW  ,QUERY REWRITE ,CREATE ANY TABLE,SELELCT ANY TABLE  权限,如果你想快速刷新机制来刷新实体化视图,必须首先对组成实体化视图的所有表创建实体化视图日志。如下所示:

4.2.1 CREATE MATERIALIZED  VIEW  LOG  ON PRODUCTS WITH SEQUENCE ,ROWID

(prod_id,prod_name,prod_desc,prod_subcategory_desc,prod_category,prod_weight_class,prod_unit_price,prod_mid_price)  including new values;

4.2.2  Create materialized view log on sales with sequence ,rowid (prod_id,cust_id,time_id,channel_id,promo_id,quantity_sold,amount_sold) including new values;

4.2.3   create materialized view product_sales_mv tablespace test1

Storage (initial 8k next 8k pctincrease 0)  build immediate refresh fast enable query rewrite as select   p.prod_name,sum(a.amount_sold) as dolar_salus,count(*) as cnt ,count(s.amount_sold ) as  cnt_amt from sales  s ,products p where s.prod_id group by p.prod_name group by p.prod_name;

5、组织索引

就是表的存储结构和索引的顺序相同。sql server的组织索引是指表中数据行的物理存储顺序与索引顺序完全相同。聚集索引由上下两层组成,上层为索引页,包含表中的索引页面,用于数据检索;下层为数据页,包含实际的数据页面,存放着表中的数据。在表的某一列创建聚集索引时,表中的数据会按列的索引顺序重新排序,并对表进行修改,因此,每个表中只能创建一个聚集索引。聚集索引要创建在经常搜索或按顺序访问的列上。

5.1  SQL SERVER

create table 新学生表
(
   
学号 varchar(20),
   其他字段定义...........
)
go

CREATE CLUSTERED INDEX  index_
学号
    ON 新学生表(学号)

 

 

5.2(Oracle )

CREATE TABLE  T1(

X    NUMBER(4),

Y    VARCHAR2(25),

Z    DATE,

PRIMARY KEY   (X)   ENABLE

ANIZATION INDEX

COMPRESS

TABLESPACE   USERS;

6、分区表

分区请三思:

  1、虽然分区可以带来众多的好处,但是同时也增加了实现对象的管理费用和复杂性。因此在进行分区之前要首先仔细的考虑以确定是否应为对象进行分区。

  2、在确定了为对象进行分区后,下一步就要确定分区键和分区数。要确定分区数据,应先评估您的数据中是否存在逻辑分组和模式。

  3、确定是否应使用多个文件分组。为了有助于优化性能和维护,应使用文件组分离数据。文件组是数据库数据文件的逻辑组合,它可以对数据文件进行管理和分配,以便提高数据库文件的并发访问效率。

  为了简化操作,SQL Server 2008中为表分区提供了相关的操作。  

  操作的顺序:
     1、先定义文件组
     2、指定哪些辅助数据库文件属于这个文件组
     3、将表放入到文件组中

  数据库分文件组(指定磁盘)

  数据实际上是依附于表来存在的,我们将表放入到文件组中,而文件组是一个逻辑的概念,其实体是辅助数据库文件(ndr),所以就等于将我们指定的数据放入到了指定的辅助数据库文件中,然后如果将这些辅助数据库文件放入在不同的磁盘分区中,就可以最终实现有针对性的对相应的数据实现性能的优化。

 

  创建文件组时,定义不同的文件组名称,可以有序地进行下一步表分区的分区映射文件组,如上图(选择数据库,右键查看属性图)

  一个水平分区表中有多个分区,每个分区对应一个文件组,这样就产生了很多文件组,因此性能也会有所提升,包括I/O性能提升,因为所有分区可以驻扎在一个不同的磁盘上。另一个好处是可以通过备份文件组单独备份一个分区。此外,SQL Server数据库引擎可以智能判断哪个分区上存放了什么数据,如果不止一个分区被访问,那么还可以借助多处理器实现并行数据检索。这种设计也充分利用了分区表的优势。

  1、提高可伸缩性和可管理性:在SQL Server 2005中建立分区,改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。 

  2、提高性能

  3、只有将数据分区分到不同的磁盘上,才会有较大的提升。

  4、因为在运行涉及表间联接的查询时,多个磁头可以同时读取数据。

  对SQL Server数据表进行分区的过程分为三个步骤:

  1) 建立分区函数

  2) 建立分区方案

  3) 对表格进行分区

  步骤如下:

http://www.accessoft.com/article_attached/2018/image/201812/201812050824590587.png

http://www.accessoft.com/article_attached/2018/image/201812/201812050825173605.png

 http://www.accessoft.com/article_attached/2018/image/201812/201812050825279468.png

http://www.accessoft.com/article_attached/2018/image/201812/201812050825380990.png

http://www.accessoft.com/article_attached/2018/image/201812/201812050825478936.png

http://www.accessoft.com/article_attached/2018/image/201812/201812050825557742.png

http://www.accessoft.com/article_attached/2018/image/201812/201812050826054373.png

6.2  Oracle 的分区表

 

6.2.1.范围分区(RANGE

范围分区将数据基于范围映射到每一个分区,这个范围是你在创建分区时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期。

CREATE TABLE CUSTOMER  
    CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY
    FIRST_NAME   VARCHAR2(30) NOT NULL
    LAST_NAME    VARCHAR2(30) NOT NULL
    PHONE        VARCHAR2(15) NOT NULL
    EMAIL        VARCHAR2(80),  
    STATUS       CHAR(1
PARTITION BY RANGE (CUSTOMER_ID)  
    PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01,  
    PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02  
);  
 

 

6.2.2.列表分区(LIST

该分区的特点是某列的值只有几个,基于这样的特点我们可以采用列表分区。创建一个按字段数据列表固定可枚举值分区的表。插入记录分区字段的值必须在列表中,否则不能被插入。

例一:

CREATE TABLE PROBLEM_TICKETS  

(   
    PROBLEM_ID   NUMBER(7) NOT NULL PRIMARY KEY,   
    DESCRIPTION  VARCHAR2(2000),   
    CUSTOMER_ID  NUMBER(7) NOT NULL,   
    DATE_ENTERED DATE NOT NULL,   
    STATUS       VARCHAR2(20)   
)   
PARTITION BY LIST (STATUS)   
(   
      PARTITION PROB_ACTIVE   VALUES ('ACTIVE') TABLESPACE PROB_TS01,   
      PARTITION PROB_INACTIVE VALUES ('INACTIVE') TABLESPACE PROB_TS02  
); 

 

6.2.3  哈希分区(散列分区)(HASH

 

CREATE TABLE HASH_TABLE   
(   
  COL NUMBER(8),   
  INF VARCHAR2(100)   
)   
PARTITION BY HASH (COL)   
(   
  PARTITION PART01 TABLESPACE HASH_TS01,   
  PARTITION PART02 TABLESPACE HASH_TS02,   
  PARTITION PART03 TABLESPACE HASH_TS03   
) 

 

CREATE TABLE emp  
    empno NUMBER (4),  
    ename VARCHAR2 (30),  
    sal   NUMBER   
PARTITION BY  HASH (empno) PARTITIONS 8  
STORE IN (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);  

 

6.2.4.组合分区

 

复合分区 (范围-散列分区,范围-列表分区)

 create table graderecord  (  sno varchar2(10),

sname varchar2(20),  

  dormitory varchar2(3),  

  grade int  )  

partition by range(grade)  ;

subpartition by hash(sno,sname)  

(  

  partition p1 values less than(75)  

            (  

           subpartition sp1,subpartition sp2  

            ),  

  partition p2 values less than(maxvalue)  

            (  

               subpartition sp3,subpartition sp4  

            )  

7、如果有一个原表,如何建立一个新表:

7.1   Oracle

Create   table   aa   as   select   * from bb;

7.2   SQL SERVER

Select   *  into  aa   from   bb;

8:触发器

 

 8.1 ORACLE 的触发器。

CREATE [OR REPLACE] TRIGGER trigger_name
  { BEFORE | AFTER | INSTEAD OF} triggering_event
  [ WHEN trigger_condition ]--限制条件
  [ FOR EACH ROW ]--行级触发

  [WHEN trigger_condition]
  trigger_body;

 

8.1.1、语句级触发器
  语句级触发器在每个数据修改语句执行后只调用一次,而不管这一操作将影响到多少行。

1:创建一个orderdetails_tablelog表及一个AFTER触发器,用于记录是哪些用户删除了orderdetails表中的数据及删除的时间。

--先创建表

create table orderdetails_tablelog

(

who varchar2(40),

oper_date date

);

--再做触发器

create or replace trigger dele_orderdetails

after delete on orderdetails

begin

insert into orderdetails_tablelog (who,oper_date) values(user,sysdate);

end;

 

8.1.2、多条件触发器

CREATE  OR   REPLACETRIGGER…
  BEFORE  insertor  update  or  delete
  ON…
  BEGIN
  IFINSERTINGTHEN
  
  ENDIF;
  IFDELETINGTHEN
  
  ENDIF;
  IFUPDATINGTHEN
  
  ENDIF;
  End;
 

 

8.1.3、级联触发器
  把一个数据库触发器的动作与另一个触发器联系起来,使之触发另一个触发器。

  CREATE    TABLE   A(AIDnumber);
  CREATE     TABLE   B(BIDnumber);
  CREATE     TABLE   C(CIDnumber);
  创建触发器表
  --在表A上创建INSERT触发器
  CREATE   OR   REPLACE   TRIGGERinsert_a
  AFTER  insert  ONA
  Begin
  insert    into  b   values(1);
  End;
  --在表B上创建INSERT触发器
  CREATE  OR    REPLACE    TRIGGERinsert_b
  AFTER   insert   ON  B
  Begin
  insert   into  c  values(2);
  End;
  -在表C上创建INSERT触发器
  CREATE   OR   REPLACE   TRIGGER   insert_c
  AFTER   insert  ON  C
  BEGIN
  UPDATE   a
  SET   aid=aid+10;
  End;
  --测试,向A表插入数据5
  INSERT   INTO   A   VALUES(5);

8.1.4、行级触发器
  行级触发器是按触发语句所处理的行激发的,可以引用受到影响的行值。创建触发器时采用关键字FOR   EACH   ROW
  这种访问是通过两个相关的标识符实现的
  :old:用于存放未进行修改前的数据
  :new:用于存放进行修改后的数据
  例5:修改 orderdetails_tablelog ,增加两列 orderid,productid,并创建一个 after 触发器,用于记录是哪些用户在什么时间删除了 orderdetails 表中的哪些数据。
  --先增加两列
  alter table orderdetails_tablelog add orderid number;
  alter table orderdetails_tablelog add productid number;
  --再做触发器
  create or replace trigger dele_orderdetails
  after delete on orderdetails
  for each row 
  begin
  insert into orderdetails_tablelog(who,oper_date,orderid,productid)

values(user,sysdate,:old.orderid,:old.productid);
  end;

 

8.2  sql server 的触发器

触发器触发时

  1.系统自动在内存中创建deleted表或inserted

  2.只读,不允许修改;触发器执行完后,自动删除

 

 

8.2.1.创建触发器的语法

create trigger trigger_name

on table_name

for [delete|   insert   |update]

as

t-sql语句

 

 

9SQL SERVER Oracle的主键自动递加的实现

9.1   SQL SERVER的主动递增

CREATE TABLE stu(
classId    int   primary key auto_increment,
name    varchar(50)
);
auto_increment
是用于主键自动增长的,从1开始增长,当你把第一条记录删除时,再插入第二跳数据时,主键值是2,不是1
 INSERT INTO student(name)   values  (‘abc’);

 9.2  oracle的主动递增,用触发器实现。

 

例子:

DECLARE
tmpVar NUMBER;
begin
    tmpVar := 0;

    : NEW.ID := A_NEXT.NEXTVAL;
   
   EXCEPTION
     WHEN OTHERS THEN
       -- Consider logging the error and then re-raise
       RAISE;
END ;
 

 

10 DECODE case

10.1   ORACLE DECODE

10 DECODE case

10.1   ORACLE DECODE

decode(条件,1,返回值1,2,返回值2,...n,返回值n,缺省值)

该函数的含义如下:
IF 条件=1 THEN
    RETURN(翻译值1)
ELSIF
条件=2 THEN
    RETURN(翻译值2)
    ......
ELSIF
条件=n THEN
    RETURN(翻译值n)
ELSE

 RETURN(缺省值)
END IF

示例:

SELECT ID,DECODE(inParam,'para1','1' ,'para2','2','para3','3','para4','4','para5','5') name FROM bank

10.2 SQL SERVER 的 CASE

SELECT  SUM(population),

        CASE country

               WHEN '中国'     THEN '亚洲'

                WHEN '印度'     THEN '亚洲'

                WHEN '日本'     THEN '亚洲'

                WHEN '美国'     THEN '北美洲'

                WHEN '加拿大'  THEN '北美洲'

                WHEN '墨西哥'  THEN '北美洲'

        ELSE '其他' END

FROM    Table_A

 

 

 

11、Oracle的作业和SQL SERVER的作业

11.1    Oracle如何创建一个作业。

create table test_job(para_date date); 

commit; 

 

insert into test_job values(sysdate); 

commit;

 

select * from test_job;

 

--建立存贮过程  

create or replace procedure test_jobproce   as 

begin 

insert into test_job values(sysdate); 

end test_jobproce;

 

declare  test_job_really number; 

begin 

dbms_job.submit(test_job_really,'test_jobproce;',sysdate,'sysdate+1/1440'); 

commit; 

end; 

 

---停止job  25是建立的job test_job_really 

begin 

dbms_job.broken(25,true); 

commit; 

end; 

 

--启动job 

begin 

dbms_job.run(25); 

commit; 

end; 

 

--删除job 

 

begin  

dbms_job.remove(25); 

commit; 

end; 

 

create table test_job(para_date date); 

commit; 

 

insert into test_job values(sysdate); 

commit;

 

select * from test_job;

 

--建立存贮过程  

create or replace procedure test_jobproce   as 

begin 

insert into test_job values(sysdate); 

end test_jobproce;

 

--建立job 

--建立job后默认是执行的 

 

declare  test_job_really number; 

begin 

dbms_job.submit(test_job_really,'test_jobproce;',sysdate,'sysdate+1/1440'); 

commit; 

end; 

 

---停止job  25是建立的job test_job_really 

begin 

dbms_job.broken(25,true); 

commit; 

end; 

 

--启动job 

begin 

dbms_job.run(25); 

commit; 

end; 

 

--删除job 

 

begin  

dbms_job.remove(25); 

commit; 

end; 

11.2  SqlServer 创建代理作业

 

 

 

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值